为了账号安全,请及时绑定邮箱和手机立即绑定

Go变量初始化语法

Go变量初始化语法

Go
qq_笑_17 2023-06-05 16:50:26
我注意到在 Go 代码示例中有两种初始化结构类型变量的方式,但我不明白何时使用每种方式。款式一:package mainimport (    "fmt")type Msg struct {  value string}func NewMsg(value string) (Msg) {  return Msg{value}}func main() {  fmt.Println("Hello, playground")  var helloMsg Msg  helloMsg = NewMsg("oi")  fmt.Println("Hello, ", helloMsg.value)}样式 2:package mainimport (    "fmt")type Msg struct {  value string}func NewMsg(value string) (Msg) {  return Msg{value}}func main() {  fmt.Println("Hello, playground")  var helloMsg Msg  {     helloMsg = NewMsg("oi")  }  fmt.Println("Hello, ", helloMsg.value)}第一种风格是简单的变量初始化,但第二种风格对我来说更晦涩。花括号有什么作用?为什么要使用第二种形式?
查看完整描述

2 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

花括号有什么作用?

它们表示一个代码块。当您想要限制标识符的范围(到该块)时,您可以使用代码块。实际上,它在这里没有任何意义,因为您只有一个标识符,而且它来自外部范围。

查看完整回答
反对 回复 2023-06-05
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

我看不出这两种风格之间的区别。他们完全一样。

{}this 定义了范围代码,其中声明的一些变量只能在该范围内使用。但是如果你helloMsg在外面声明并在块=内做{}。'helloMsg' 尚未确定范围。

所以,这两种格式化风格是完全一样的。


查看完整回答
反对 回复 2023-06-05
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信