Di Golang, tatasusunan ialah himpunan tersusun panjang tetap bagi unsur jenis yang sama. Walau bagaimanapun, dalam pembangunan sebenar kita mungkin menghadapi situasi di mana kita perlu mengubah suai elemen tatasusunan.
Pertama sekali, perlu jelas bahawa dalam Golang, tatasusunan ialah jenis nilai. Ini bermakna jika kita menetapkan tatasusunan kepada tatasusunan lain atau menghantar tatasusunan sebagai parameter, kami sebenarnya menghantar salinan tatasusunan, bukan tatasusunan asal itu sendiri. Oleh itu, jika kita ingin mengubah suai elemen tatasusunan, kami perlu mengubah suai tatasusunan asal, bukan salinannya.
Cara paling asas untuk mengubah suai elemen dalam tatasusunan ialah merujuk elemen dalam tatasusunan mengikut indeks dan menetapkan nilai baharu:
arr := [3]int{1, 2, 3} arr[0] = 4
Dalam contoh di atas, kami mencipta integer bagi panjang 3 Array, tukar elemen pertama daripada 1 kepada 4. Kaedah ini agak mudah dan mudah difahami, tetapi kadangkala kita perlu mengendalikan keseluruhan tatasusunan, dalam hal ini kita perlu menggunakan penuding tatasusunan.
Di Golang, jenis penunjuk tatasusunan ialah penunjuk, menunjuk ke elemen pertama tatasusunan. Anda boleh mendapatkan penuding tatasusunan melalui pengendali "&":
arr := [3]int{1, 2, 3} ptr := &arr[0] //指向arr数组的第一个元素
Dalam contoh di atas, kami mencipta tatasusunan integer dengan panjang 3 dan menetapkan penunjuk elemen pertamanya kepada ptr. Seterusnya, kita boleh mengubah suai keseluruhan tatasusunan dengan mengubah suai nilai yang ditunjuk oleh penunjuk ptr:
*ptr = 4 //修改第一个元素的值 *(ptr+1) = 5 //修改第二个元素的值 *(ptr+2) = 6 //修改第三个元素的值
Dalam contoh di atas, kami menggunakan operator "", yang bermaksud mengambil nilai yang ditunjuk oleh nilai penunjuk. Melalui pengendali "+", kita boleh beralih ke mana-mana kedudukan dalam tatasusunan, dan kemudian mengubah suai nilai kedudukan itu melalui pengendali "".
Selain itu, terdapat fungsi terbina dalam Golang khusus untuk memproses tatasusunan - "salinan". Fungsi ini menyalin elemen dari satu tatasusunan ke tatasusunan yang lain dan mengembalikan bilangan elemen yang sebenarnya disalin.
arr1 := [3]int{1, 2, 3} arr2 := [3]int{} //创建一个长度为3的空数组 num := copy(arr2[:], arr1[:]) //将arr1的元素复制到arr2中,并返回复制的元素数量
Dalam contoh di atas, kami mencipta dua tatasusunan integer dengan panjang 3, menyalin elemen dalam arr1 kepada arr2, dan mengembalikan bilangan elemen yang disalin. Perlu diingatkan bahawa kami menggunakan operator "[:]" untuk mendapatkan sekeping keseluruhan tatasusunan, dengan itu menyalin keseluruhan tatasusunan ke tatasusunan lain.
Secara umumnya, terdapat banyak cara untuk mengubah suai elemen tatasusunan dalam Golang. Dalam kes yang mudah, kita boleh merujuk terus elemen dalam tatasusunan mengikut indeks dan menetapkan nilai baharu. Dalam kes yang lebih kompleks, kita boleh menggunakan penunjuk tatasusunan untuk beroperasi, atau gunakan fungsi "salin" terbina dalam untuk menyalin satu tatasusunan ke tatasusunan lain. Sama ada cara, ambil perhatian bahawa tatasusunan ialah jenis nilai dan anda perlu mengubah suai tatasusunan asal dan bukannya salinannya.
Atas ialah kandungan terperinci pengubahsuaian tatasusunan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!