Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah anda boleh memulakan tatasusunan boolean dengan cekap dalam Go tanpa menggunakan untuk gelung?

Bagaimanakah anda boleh memulakan tatasusunan boolean dengan cekap dalam Go tanpa menggunakan untuk gelung?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-31 18:39:02472semak imbas

How can you efficiently initialize boolean arrays in Go without using for loops?

Memulakan Tatasusunan boolean dalam Go without For Loops dengan cekap

Dalam Go, memulakan tatasusunan boolean boleh dilakukan dalam pelbagai cara. Pendekatan yang paling mudah melibatkan penggunaan gelung for, seperti dalam contoh yang disediakan:

<code class="go">for i := 0; i < n; i++ {
    A[i] = true
}</code>

Walau bagaimanapun, terdapat kaedah alternatif yang boleh menghapuskan keperluan untuk gelung for.

Mencipta Tatasusunan/Kepingan Sifar

Secara lalai, tatasusunan dan hirisan Go dimulakan dengan nilai sifarnya. Untuk boolean, nilai sifar adalah palsu. Oleh itu, mencipta tatasusunan atau hirisan tanpa memulakan elemennya akan menyebabkan semua nilai ditetapkan kepada palsu.

<code class="go">b1 := []bool{false, false, false}
b2 := [3]bool{false, false, false}</code>

Harta Gabungan dengan Nilai Malar

Tersurat komposit boleh digunakan untuk mencipta dan memulakan tatasusunan atau kepingan dengan nilai tertentu. Walau bagaimanapun, penggunaan literal komposit tidak memberikan sebarang peningkatan yang ketara berbanding menggunakan gelung for.

<code class="go">b1 := []bool{true, true, true}
b2 := [3]bool{true, true, true}</code>

Untuk menyingkatkan permulaan, anda boleh memperkenalkan pemalar untuk nilai true:

<code class="go">const T = true
b3 := []bool{T, T, T}</code>

Strategi Alternatif

Jika kecekapan memulakan tatasusunan boolean besar membimbangkan, terdapat strategi alternatif untuk dipertimbangkan:

  • Pendekatan Nilai Nafikan: Daripada menyimpan sama ada fail ada, simpan sama ada fail itu hilang. Dengan cara ini, kepingan nilai boolean yang dimulakan sifar akan mencerminkan keadaan lalai dengan tepat.
  • Fungsi memset tersuai: Go tidak mempunyai fungsi memset terbina dalam. Walau bagaimanapun, anda boleh mencipta pelaksanaan cekap anda sendiri untuk mengisi tatasusunan atau kepingan dengan nilai tertentu.

Atas ialah kandungan terperinci Bagaimanakah anda boleh memulakan tatasusunan boolean dengan cekap dalam Go tanpa menggunakan untuk gelung?. 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