我注意到在 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个赞
花括号有什么作用?
它们表示一个代码块。当您想要限制标识符的范围(到该块)时,您可以使用代码块。实际上,它在这里没有任何意义,因为您只有一个标识符,而且它来自外部范围。
慕婉清6462132
TA贡献1804条经验 获得超2个赞
我看不出这两种风格之间的区别。他们完全一样。
{}
this 定义了范围代码,其中声明的一些变量只能在该范围内使用。但是如果你helloMsg
在外面声明并在块=
内做{}
。'helloMsg' 尚未确定范围。
所以,这两种格式化风格是完全一样的。
- 2 回答
- 0 关注
- 93 浏览
添加回答
举报
0/150
提交
取消