Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Memulakan Tatasusunan Boolean dalam Go Without Loops?

Bagaimanakah Saya Boleh Memulakan Tatasusunan Boolean dalam Go Without Loops?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 08:53:02620semak imbas

How Can I Initialize Boolean Arrays in 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!

Kenyataan:
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