ฉันเห็นช่วงดังกล่าวส่งคืนคีย์และ "สำเนา" ของค่า มีวิธีให้ช่วงนั้นคืนที่อยู่ของรายการหรือไม่? ตัวอย่าง
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("--")
}
}
http://play.golang.org/p/AFOGG9NGpx
ที่นี่ "ฟิลด์" ไม่ได้รับการแก้ไขเนื่องจาก range ส่งสำเนาของฟิลด์ฉันต้องใช้ดัชนีหรือมีวิธีอื่นในการแก้ไขค่าหรือไม่?
ขอบคุณที่อ่าน.