版权声明:诸葛老刘所有 https://blog.csdn.net/weixin_39791387/article/details/86522276
本文适合初学者阅读
- 关键字
var
用于定义变量
var x int // 自动初始化为 0
var z = false // 自动推断为bool类型
- 可以一次定义多个变量
var x, y int // 相同类型的多个变量
var a, b = 100, "xyz" // 不同类型初始化值
- 依照惯例, 建议以组的方式整理多行变量定义
var(
x, y int
a, b = 100, "XYZ"
)
- 简短模式
除var关键字外, 还可使用更加简短的变量定义和初始化语法
func main() {
x := 100
a, b := 200, "XYZ"
}
简短模式的限制:
- 定义变量,同时显示初始化
- 不能提供数据类型
只能用在函数内部
- 简短模式的坑:
- 简短模式并不总是重新定义变量, 也可能是部分退化的赋值操作.
func main() {
x := 10
println(&x) // 注意: x退化为赋值操作, 仅y是变量定义
x, y := 200, "abc"
println(&x,x) // 打印出变量的内存地址,以便确认是否是同一个变量
println(y)
}
结果是:
0xc000031f60
0xc000031f60 200
abc
结果确认是同一变量
退化赋值的前提条件是: 最少有一个新变量被定义 , 且必须是同一作用域
func main() {
x := 10
println(&x) // 注意: x退化为赋值操作, 仅y是变量定义
{
x, y := 200, "abc"
println(&x,x) // 打印出变量的内存地址,以便确认是否是同一个变量
println(y)
}
}
结果是:
0xc000031f60
0xc000031f58 200 //结果确认不再是同一个变量
abc
在处理函数的错误返回值时, 退化赋值允许我们重复使用err变量, 这是相当有益的.
- 多变量赋值
在进行多变量赋值操作时, 首先计算出所有右值, 然后再依次完成赋值操作.
package main
func main() {
x, y := 1, 2
x, y = y+5, x+1
println(x, y)
}
结果是
7 2
- 未使用错误
编译器将未使用到的局部变量当作错误. 也就是用多少定义多少, 定义了没有使用, 会报错, 这和python不同
- 变量命名建议:
– 以字母或下划线开始, 由多个字母 数字或下划线组成
– 区分大小写.
– 使用驼峰拼写格式
– 局部变量优先使用短名.
– 不要使用保留关键字
– 不建议使用与预定义的常量, 类型, 内置函数相同的名字
– 专有名词通常全部大写.
– 不建议中文字符命名
– 符号名字首字母大小写决定了其作用域, 首字母大写为导出成员, 可以被包外引用, 而小写仅能在包内使用
– 空标识符(也就是_
)通常作为忽略占位符使用, 可作为表达式左值, 无法记取内容