これが私が見ているスニペットです:
var t txn
t.c = c
err := c.read(&t.req)
t.req だけでなく &t と書かなければならないのはなぜですか?
アンパサンドを常に使用する必要はありません。あなたの例では、ポインターを要求する c.read の署名に依存します(*
などの型の前*MyStruct
)。&
値のアドレスを返し、それへのポインターを提供するため、&t.req
読み取りの署名を満たします。
詳細については、ポインターに関する FAQとAddress 演算子に関する仕様を参照してください。