指针 – golang范围引用代替值

我看到该范围返回的键和值的“复制”.有没有办法让这个范围返回物品的地址?例
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

这里的“field”不会被修改,因为range发送字段的副本,
我必须使用索引,还是有其他方式修改值?

谢谢阅读.

短小直接回答:不,使用数组索引而不是值

所以上面的代码变成:

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("--")
    }
}

相关文章

什么是Go的接口? 接口可以说是一种类型,可以粗略的理解为他...
1、Golang指针 在介绍Golang指针隐式间接引用前,先简单说下...
1、概述 1.1 Protocol buffers定义 Protocol buffe...
判断文件是否存在,需要用到"os"包中的两个函数: os.Stat(...
1、编译环境 OS :Loongnix-Server Linux release 8.3 CPU指...
1、概述 Golang是一种强类型语言,虽然在代码中经常看到i:=1...