Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Memulakan Tatasusunan Boolean dalam Go Without Loops?
Mencipta Tatasusunan Boolean dalam Go: Alternatif kepada Untuk Gelung
Apabila bekerja dengan tatasusunan boolean dalam Go, memulakannya boleh menjadi tugas biasa. Pendekatan konvensional melibatkan penggunaan gelung for untuk menetapkan setiap elemen secara individu. Walau bagaimanapun, terdapat cara alternatif untuk mencapai permulaan ini tanpa menggunakan gelung.
Mencipta Tatasusunan Nilai Sifar
Satu penyelesaian mudah ialah mengelak daripada menggunakan gelung for sama sekali . Tatasusunan dalam Go dimulakan dengan nilai sifar secara lalai. Untuk tatasusunan boolean, ini bermakna semua elemen akan ditetapkan kepada palsu. Oleh itu, anda hanya boleh mengisytiharkan tatasusunan saiz yang dikehendaki, dan ia akan dimulakan dengan semua elemen ditetapkan kepada palsu:
<code class="go">A := [n]bool{false, false, ..., false}</code>
Menggunakan Huruf Komposit
Komposit literals menawarkan cara ringkas untuk mencipta dan memulakan tatasusunan atau kepingan. Walaupun mereka biasanya memerlukan lebih banyak menaip daripada gelung for, mereka masih boleh menyediakan penyelesaian yang mudah:
<code class="go">A := []bool{true, true, true}</code>
Memendekkan Permulaan Menggunakan Pemalar
Jika anda kerap memulakan tatasusunan dengan nilai yang sama, memperkenalkan pemalar boleh menyelaraskan proses:
<code class="go">const T = true A := []bool{T, T, T}</code>
Logik Alternatif: Menyimpan Nilai Nafi
Daripada menyimpan nilai positif dalam tatasusunan, pertimbangkan untuk menyimpan nilai yang dinafikan. Ini membolehkan anda memulakan tatasusunan dengan nilai sifarnya (semua palsu) dan mentafsir palsu sebagai "tidak hadir" atau "tidak hilang":
<code class="go">missings := make([]bool, 6) // All false // missing=false means not missing, means present</code>
Pengamatan Dioptimumkan untuk Tatasusunan Besar
Untuk tatasusunan yang besar, teknik permulaan yang paling berkesan ialah melalui operasi "memset". Walaupun Go tidak mempunyai fungsi memset terbina dalam, soalan berikut menyediakan penyelesaian yang sangat cekap:
[Adakah terdapat analog memset dalam Go?](https://stackoverflow.com/questions/21376450/is -ada-analog-memset-dalam-pergi)
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memulakan Tatasusunan Boolean dalam Go Without Loops?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!