这是我正在查看的片段:
var t txn
t.c = c
err := c.read(&t.req)
为什么要写 &t 而不仅仅是 t.req?
最佳答案
您不必总是使用 & 符号。在您的示例中,它取决于 c.read 的签名,它要求一个指针(*
在类型之前,例如 *MyStruct
)。 &
返回一个值的地址,给你一个指向它的指针,所以 &t.req
满足 read 的签名。
要进一步阅读,请参阅 FAQ on pointers和 Address operators 上的规范.
关于go - 为什么 go 要求你在变量名前加 &?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507689/