Rumah > pembangunan bahagian belakang > Golang > Bilakah anda memerlukan tanda kurung semasa memulakan struct Go?

Bilakah anda memerlukan tanda kurung semasa memulakan struct Go?

DDD
Lepaskan: 2024-11-03 00:06:02
asal
1051 orang telah melayarinya

When do you need parentheses when initializing Go structs?

Memulakan Go Structs dengan Tanda Kurung

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>
Salin selepas log masuk

Walau bagaimanapun, ia adalah sama sah untuk memulakan struct dengan kurungan:

<code class="go">item2 := (Item{2, "Bar"})</code>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan