Dalam bahasa Go, slice ialah struktur data yang biasa digunakan, yang boleh mengendalikan tatasusunan panjang dinamik dengan mudah. Dalam sesetengah senario, kita mungkin perlu mengubah suai nilai satu atau beberapa elemen dalam hirisan Artikel ini akan memperkenalkan cara mengubah suai nilai hirisan dalam bahasa Go.
Bahasa Slice in Go ialah jenis rujukan, yang mengandungi penunjuk kepada tatasusunan asas, panjang dan kapasiti kepingan. Oleh itu, kita boleh mengakses elemen dalam kepingan melalui subskrip dan mengubah suainya. Sebagai contoh, kod berikut menunjukkan cara mengubah suai nilai subskrip tertentu dalam hirisan:
package main import "fmt" func main() { // 定义一个切片 s := []int{1, 2, 3, 4, 5} // 修改第3个元素的值 s[2] = 100 // 打印切片的值 fmt.Println(s) // 输出:[1 2 100 4 5] }
Dalam kod di atas, kami mula-mula mentakrifkan hirisan s
dan kemudian mengakses keratan melalui s[2]
elemen ke-3 dan ubah suainya kepada 100. Akhir sekali, kami mencetak nilai hirisan yang diubah suai s
.
Selain kaedah di atas, kita juga boleh melingkari hirisan dan mengubah suai nilai setiap elemen satu demi satu. Sebagai contoh, kod berikut menunjukkan cara untuk melingkari kepingan dan mengubah suai semua elemen genap di dalamnya kepada nombor ganjil.
package main import "fmt" func main() { // 定义一个切片 s := []int{1, 2, 3, 4, 5} // 遍历切片,将所有偶数修改为奇数 for i := 0; i < len(s); i++ { if s[i] % 2 == 0 { s[i] += 1 } } // 打印切片的值 fmt.Println(s) // 输出:[1 3 3 5 5] }
Dalam kod di atas, kita mula-mula mentakrifkan hirisan s
, dan kemudian gelungkan setiap elemennya Jika nilai elemen itu ialah nombor genap, tambah 1 padanya untuk menjadi nombor ganjil. Akhir sekali, kami mencetak nilai hirisan yang diubah suai s
.
Selain kaedah di atas, kita juga boleh menggunakan fungsi terbina dalam copy
untuk mengubah suai nilai hirisan. copy
Fungsi ini boleh menyalin kandungan satu kepingan ke kepingan lain dan mengembalikan bilangan elemen yang disalin. Jika panjang kepingan sasaran kurang daripada panjang kepingan sumber, hanya unsur-unsur panjang kepingan sasaran akan disalin jika panjang kepingan sasaran lebih besar daripada panjang kepingan sumber, selepas menyalin elemen daripada kepingan sumber, elemen kepingan sasaran yang tinggal akan kekal tidak berubah . Sebagai contoh, kod di bawah menunjukkan cara menggunakan fungsi copy
untuk menyalin elemen separa satu kepingan ke dalam kepingan lain.
package main import "fmt" func main() { // 定义一个切片 s1 := []int{1, 2, 3, 4, 5} // 定义另一个切片,并复制s1中的部分元素到其中 s2 := make([]int, 3, 5) copy(s2, s1[2:5]) // 修改s2中的元素值 for i, v := range s2{ s2[i] = v * 10 } // 打印切片的值 fmt.Println(s1) // 输出:[1 2 3 4 5] fmt.Println(s2) // 输出:[30 40 50] }
Dalam kod di atas, kami mula-mula mentakrifkan hirisan s1
, kemudian dapatkan elemen dengan subskrip dari 2 hingga 4 dalam s1[2:5]
hingga s1
, dan salinnya ke kepingan A yang lain s2
. Seterusnya, kita gelung melalui s2
dan darab semua nilai elemen di dalamnya dengan 10. Akhir sekali, kami mencetak nilai s1
dan s2
Kami dapat melihat bahawa s1
belum diubah suai, dan nilai elemen dalam s2
telah menjadi 10 kali ganda nilai asalnya.
Ringkasnya, kita boleh mengubah suai kepingan dalam bahasa Go melalui subskrip, gelung dan fungsi copy
. Dalam aplikasi tertentu, anda boleh memilih kaedah yang sesuai untuk mengubah suai nilai hirisan mengikut senario yang berbeza.
Atas ialah kandungan terperinci Cara mengubah suai nilai hirisan dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!