我注意到在 Go 代碼示例中有兩種初始化結構類型變量的方式,但我不明白何時使用每種方式??钍揭唬簆ackage 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 關注
- 139 瀏覽
添加回答
舉報
0/150
提交
取消