」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 初始化 Go 結構體時什麼時候需要括號?

初始化 Go 結構體時什麼時候需要括號?

發佈於2024-11-08
瀏覽:636

When do you need parentheses when initializing Go structs?

使用括號初始化 Go 結構體

在 Go 中初始化結構體時,使用括號不是必需的,但在某些情況下可能是首選。

通常,結構體使用大括號進行初始化,如:

item1 := Item{1, "Foo"}

但是,用括號初始化結構體同樣有效:

item2 := (Item{2, "Bar"})

這兩行都建立Item 結構的實例,並將它們分別指派給item1 和item2。兩個結構體上的反射將會傳回相同的名稱。

括號主要用於在 if 語句中使用結構體初始化時消除語法歧義。如果沒有括號,下面的程式碼將導致編譯錯誤:

if i := Item{3, "a"}; i.Id == 3 {
}

編譯者無法確定左大括號屬於複合文字或 if 語句體。加括號可以解決這個歧義:

if i := (Item{3, "a"}); i.Id == 3 {
}

在這種情況下,括號明確指示複合文字是分配給 i 的值。有關更多詳細信息,請參閱“for 循環初始值設定項中的結構”頁面。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3