以下是我要查看的代码段:
var t txn
t.c = c
err := c.read(&t.req)
为什么你要写& t而不仅仅是t.req?
答案 0 :(得分:6)
您并不总是必须使用&符号。在您的示例中,它取决于c.read的签名,该签名要求指针(*
在类型之前,例如*MyStruct
)。 &
返回值的地址,为您指定一个值,因此&t.req
满足read的签名。
如需进一步阅读,请参阅FAQ on pointers和Address operators上的规范。