Memahami Perbezaan antara Kapasiti dan Panjang Slice
Slice dalam Go ialah struktur data yang menyediakan cara yang fleksibel dan cekap untuk mengendalikan koleksi nilai. Ia beroperasi pada tatasusunan asas, menawarkan dua sifat utama: kapasiti dan panjang.
Kapasiti
Kapasiti kepingan merujuk kepada jumlah bilangan elemen yang mendasari array boleh tahan. Apabila mencipta kepingan menggunakan fungsi make(), kapasiti boleh ditentukan sebagai hujah ketiga. Contohnya:
x := make([]int, 0, 5)
Dalam kes ini, kepingan x mempunyai panjang 0 tetapi kapasiti 5.
Panjang
panjang sekeping mewakili bilangan unsur yang terkandung padanya. Apabila memulakan kepingan dengan panjang sifar, seperti dalam contoh di atas, panjangnya juga akan menjadi 0.
Perbezaan antara Kapasiti dan Panjang
Manakala kapasiti menunjukkan bilangan maksimum daripada elemen yang boleh ditampung hirisan, panjang menandakan bilangan sebenar nilai bukan nol yang disimpannya. Panjang sekeping tidak boleh lebih besar daripada kapasitinya, tetapi boleh kurang daripada kapasiti jika tidak semua elemen diisi.
Contoh
Untuk lebih baik memahami, pertimbangkan contoh berikut:
s := make([]int, 0, 3) for i := 0; i < 5; i++ { s = append(s, i) }
Kod ini mencipta kepingan dengan kapasiti 3 dan kemudian menambahkan nilai padanya sehingga mencapai kapasiti. Apabila kapasiti melebihi, kepingan akan diubah saiznya secara automatik, dan kapasitinya akan meningkat. Output kod ini ialah:
cap 3, len 1 cap 3, len 2 cap 3, len 3 cap 6, len 4 cap 6, len 5
Dalam output ini, kapasiti bermula pada 3 dan dua kali ganda apabila kepingan mencapai kapasitinya. Walau bagaimanapun, panjangnya bertambah dengan setiap operasi tambah dan mewakili bilangan nilai sebenar.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Kapasiti dan Panjang dalam Go Slices?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!