欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 50周学习go语言:第2周 基础语法与温度转换程序

50周学习go语言:第2周 基础语法与温度转换程序

2025/2/24 16:19:42 来源:https://blog.csdn.net/weixin_42771529/article/details/145809973  浏览:    关键词:50周学习go语言:第2周 基础语法与温度转换程序

以下是第二周Go语言基础语法的详细教程,包含变量声明、基本类型操作和温度转换任务的完整实现指南:


第二周:基础语法与温度转换程序


一、变量声明

1. var关键字声明
// 标准声明格式(类型在变量名后)
var 变量名 类型 =// 示例:
var age int = 25        // 显式指定类型
var name = "Alice"      // 类型推断(自动推导为string)
var isStudent bool      // 未赋值时使用零值(bool零值为false)
2. 短声明(:=)
// 只能在函数内部使用
变量名 :=// 示例:
temperature := 36.5     // 自动推导为float64
city := "Beijing"       // string类型
3. 两种方式对比
声明方式使用场景示例
var包级变量/需要显示指定类型var count int = 10
:=函数内部局部变量name := "Bob"

二、基本数据类型

1. 数值类型
  • int:整型(自动选择系统位数)
  • float64:双精度浮点型(推荐使用)
  • 其他:int8/uint16/float32等(需要特定精度时使用)
2. 字符串类型
var message string = "Hello, 世界"  // UTF-8编码
str := `多行
原始字符串`                        // 反引号定义多行字符串
3. 布尔类型
var isActive bool = true  // 只能为true/false
isValid := (10 > 5)       // 通过表达式赋值
4. 零值特性
类型零值
数值0
字符串“”
布尔false

三、示例代码

package mainimport "fmt"// 包级变量声明
var version string = "1.0"func main() {// 短声明示例name := "Gopher"age := 3// var声明示例var isRobot boolvar weight float64 = 12.5fmt.Printf("Name: %s, Age: %d\n", name, age)fmt.Println("Is robot:", isRobot)  // 输出零值fmt.Printf("Weight: %.1fkg\n", weight)
}

四、任务:温度转换程序

要求
  1. 从命令行输入摄氏温度(如:36.5)
  2. 使用公式转换为华氏温度:℉ = ℃×1.8 +32
  3. 输出转换结果(保留1位小数)
  4. 代码需同时演示var和:=两种声明方式
分步教程
  1. 创建项目目录
mkdir temp-converter
cd temp-converter
go mod init tempconverter
  1. 编写代码(main.go)
package mainimport ("fmt"
)func main() {// 使用var声明变量var celsius float64// 获取用户输入fmt.Print("请输入摄氏温度(℃):")fmt.Scanln(&celsius)  // 注意取地址符&// 使用短声明转换温度fahrenheit := celsius*1.8 + 32// 输出结果(保留1位小数)fmt.Printf("转换结果:%.1f℉\n", fahrenheit)
}
  1. 运行程序
go run main.go
# 输入示例:36.5
# 预期输出:转换结果:97.7℉

五、常见问题解决

  1. 报错:non-integer value
    确保使用float64类型,输入时不要包含非数字字符

  2. Scanln无法读取输入
    检查是否添加取地址符&celsius

  3. 精度丢失问题
    计算时至少有一个操作数是浮点类型:

    // 错误示例(整数计算)
    5/9 = 0  
    // 正确写法
    5.0/9.0 = 0.555...
    
  4. 变量未使用错误
    Go编译器不允许存在未使用的变量


学习成果检查

  • 能正确声明包级变量和局部变量
  • 理解float64和int的区别
  • 程序能正确处理小数输入
  • 输出结果保留1位小数
  • 代码中包含两种变量声明方式

扩展练习
尝试添加华氏转摄氏功能,使用flag包实现命令行参数输入(示例命令:-t 98.6 -scale F

完成本练习后,你将掌握Go的变量操作和基础类型转换,为后续流程控制学习打下基础。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词