go 语言中提供了 var 语句支持变量声明,在包含初始化的时候编译器可以根据默认类型进行自动推导。go 语言还提供了更加简洁的声明语法 :=。
通过这些不同的方式都可以用来声明变量,但我们在编码时应该尽可能使用规范的风格。
下面是Dave 大神提到的最佳实践:
最佳实践
-
声明变量后将稍后再初始化时,请使用
var语句。变量被声明为指定类型的零值。 -
声明变量时同时初始化,请使用
:=语句。清楚的表示左侧的变量是初始化过的。
当然也会有例外:
任何经验法则,都有例外。
有时两个变量密切相关,这样写会很奇怪:
var min int
max := 1000
像下面这样声明会更具可读性:
min, max := 0, 1000
还有一个例子,
var length uint32 = 0x80
这里使用了 var 同时进行了初始化,这样做是为了强调变量 length 会具有特殊含义,看起来更加显眼。
总之,按照一定风格编码,会使得程序更具可读性。
一些注意事项
_ (下划线),是一个特殊的变量,在声明和赋值时有特殊的含义,叫做空标识符。任何赋给它的值都会被丢弃。
value, _ := strconv.Atoi("123") // 丢弃strconv.Atoi()的另一个返回值error
go 语言对于已声明但未使用的变量会在编译阶段报错。
// 如果 i 只声明而没有使用,编译时会提示错误:i declared and not used
var i int
go 语言中的自动推断类型并不是任何时候都适用的。
nil 虽然是指针和引用类型的零值,但是并没有对应的默认类型。
var p = nil // 编译错误,use of untyped nil
参考资源:
本文探讨了Go语言中变量声明的不同方式,包括使用var语句和更简洁的:=语法。文章介绍了Dave大神推荐的最佳实践,建议在声明变量后稍后初始化时使用var语句,而在声明并立即初始化时使用:=语法。此外,文章还讨论了一些特殊情况下的变量声明策略,如使用空标识符_来忽略特定值。
571

被折叠的 条评论
为什么被折叠?



