[go语言]变量声明-总结

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

参考资源:

  1. https://dave.cheney.net/practical-go/presentations/qcon-china.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值