Apabila memulakan struct dalam Go, menggunakan kurungan tidak perlu tetapi boleh diutamakan dalam situasi tertentu.
Lazimnya, struct dimulakan menggunakan pendakap, seperti yang dilihat dalam:
<code class="go">item1 := Item{1, "Foo"}</code>
Walau bagaimanapun, ia adalah sama sah untuk memulakan struct dengan kurungan:
<code class="go">item2 := (Item{2, "Bar"})</code>
Kedua-dua baris mencipta contoh struct Item dan berikan mereka kepada item1 dan item2 masing-masing. Pantulan pada kedua-dua struktur akan mengembalikan nama yang sama.
Kurungan terutamanya berfungsi untuk menyahkekaburan sintaks apabila menggunakan pemulaan struktur dalam pernyataan if. Tanpa kurungan, kod berikut akan mengakibatkan ralat kompilasi:
<code class="go">if i := Item{3, "a"}; i.Id == 3 { }</code>
Pengkompil tidak dapat menentukan sama ada pendakap bukaan tergolong dalam literal komposit atau badan pernyataan if. Menambah kurungan menyelesaikan kekaburan ini:
<code class="go">if i := (Item{3, "a"}); i.Id == 3 { }</code>
Dalam kes ini, kurungan secara eksplisit menunjukkan bahawa literal komposit ialah nilai yang diberikan kepada i. Untuk butiran lanjut, rujuk halaman "Struct in for loop initializer".
Atas ialah kandungan terperinci Bilakah anda memerlukan tanda kurung semasa memulakan struct Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!