golang &的符号疑问.

type argError struct {
    arg  int
    prob string
}

func (e *argError) Error() string {
    return fmt.Sprintf("%d - %s", e.arg, e.prob)
}

func f2(arg int) (int, error) {
    if arg == 42 {

        // In this case we use `&argError` syntax to build
        // a new struct, supplying values for the two
        // fields `arg` and `prob`.
        return -1, **&**argError{arg, "can't work with it"}
    }
    return arg + 3, nil
}

在这里&是取argError的地址, 但这里并没有实例化一个argError,也就是没有分配内存,如何取得地址呢?

阅读 10.3k
1 个回答

argError{...}相当于new了,也就是实例化了,&取出这个实例的地址

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题