Memperuntukkan Tatasusunan dengan Saiz Pembolehubah dalam Go
Tidak seperti tatasusunan bersaiz malar yang diisytiharkan menggunakan const, Go tidak membenarkan peruntukan langsung tatasusunan dengan saiz yang ditentukan masa larian. Ini jelas dalam kod haram berikut:
n := 1 var a [n]int
Walau bagaimanapun, terdapat penyelesaian: gunakan kepingan dan bukannya tatasusunan. Slices ialah rujukan kepada tatasusunan yang mendasari dan menyediakan keupayaan mengubah saiz yang dinamik. Fungsi make() terbina dalam digunakan untuk membuat kepingan dan tatasusunan asasnya. Ia memerlukan tiga hujah:
Dengan mencipta kepingan menggunakan make(), kami secara tidak langsung peruntukkan tatasusunan dengan saiz masa jalan:
n := 12 s := make([]int, n, 2*n)
Dalam kes ini, tatasusunan saiz 2*n diperuntukkan dan s merujuk kepada kepingan yang mengandungi n elemen pertama tatasusunan.
Masih tidak jelas mengapa Go tidak membenarkan peruntukan langsung tatasusunan bersaiz berubah-ubah, tetapi penyelesaian menggunakan kepingan menyediakan alternatif yang fleksibel dan cekap. Akibatnya, adalah disyorkan untuk menggunakan kepingan dalam kebanyakan senario apabila bekerja dengan struktur data dinamik dalam Go.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memperuntukkan Tatasusunan dengan Saiz Boleh Ubah dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!