Bu aralığın anahtarı ve değerin "kopyasını" döndürdüğünü gördüm. Bu aralığın, öğenin adresini iade etmesinin bir yolu var mı? Örnekgolang aralığı başvurular yerine
İştepackage 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
"alanı" mesafesi alan kopyasını gönderdiği için, modifiye Ben endeksi kullanmak zorunda veya değeri değiştirmek için başka bir yolu yoktur mı değil mi?
Okumak için teşekkürler.
olası yinelenen [Değiştir değerlerine golang içinde yineleme sırasında] (http://stackoverflow.com/questions/15945030/change-values-while-iterating-in-golang) –
'MyType' işaretçisi dizisini kullanabilir misiniz? – nvcnvn
Evet, bir dizi işaretçiyi kullanırsanız, dizini kullanmak zorunda kalmadan sonuçları doğrudan dizide değiştirebilirsiniz, burada bir örnek var http://play.golang.org/p/_Vx7ONLDJs – notzippy