Apabila mengulang julat nilai, adalah perkara biasa untuk mengubah suai nilai asal dan bukannya menggunakan salinan sahaja. Walau bagaimanapun, secara lalai, binaan julat mengembalikan salinan setiap nilai.
package main import "fmt" type MyType struct { field string } func main() { var array [10]MyType for _, e := range array { e.field = "foo" } for _, e := range array { fmt.Println(e.field) fmt.Println("--") } }
Dalam kod di atas, medan "medan" setiap elemen dalam tatasusunan tidak diubah suai kerana julat menyalin nilai ke dalam pembolehubah e.
Untuk mengubah suai nilai asal, anda tidak boleh menggunakan binaan julat untuk mengulang nilai. Sebaliknya, anda mesti menggunakan indeks tatasusunan.
package main import "fmt" type MyType struct { field string } func main() { var array [10]MyType for idx, _ := range array { array[idx].field = "foo" } for _, e := range array { fmt.Println(e.field) fmt.Println("--") } }
Dengan menggunakan indeks tatasusunan, anda mengakses terus nilai asal dalam tatasusunan dan boleh mengubah suainya mengikut keperluan.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Suai Nilai Asal Semasa Lelaran Julat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!