Memulakan Go Structs dalam Kurungan: Tujuan dan Penggunaan
Dalam Go, struct boleh dimulakan menggunakan sama ada sintaks tugasan tradisional, seperti:
item1 := Item{1, "Foo"}
Atau, sebagai alternatif, dengan kurungan:
item2 := (Item{2, "Bar"})
Kedua-dua pendekatan menghasilkan keputusan yang sama apabila diperiksa dengan refleksi. Walau bagaimanapun, permulaan dengan kurungan berfungsi untuk tujuan tertentu.
Satu perbezaan utama timbul apabila secara sintaksis membenamkan pemulaan struktur ke dalam pernyataan lain, seperti jika bersyarat. Tanpa kurungan, niat menjadi samar-samar:
if i := Item{3, "a"}; i.Id == 3 { }
Ini mengakibatkan ralat masa kompilasi, menyebabkan tidak jelas sama ada pendakap bukaan tergolong dalam literal komposit atau badan pernyataan if.
Menggunakan kurungan menyelesaikan kekaburan ini, menjelaskan bahawa literal komposit yang disertakan dalam kurungan mewakili keseluruhan ungkapan yang akan diberikan kepada pembolehubah i. Ini menghalang pengkompil daripada menyalahtafsir sintaks:
if i := (Item{3, "a"}); i.Id == 3 { }
Ringkasnya, menggunakan kurungan semasa memulakan struct Go dalam pernyataan lain memastikan kod itu kekal jelas dan berjaya menyusun, terutamanya dalam senario yang melibatkan pernyataan bersyarat atau ungkapan lain yang memerlukan pemisahan yang jelas antara literal komposit dan sintaks sekeliling.
Atas ialah kandungan terperinci Mengapa Menggunakan Tanda Kurung Semasa Memulakan Penyata Dalam Go Structs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!