私はこのように定義されたいくつかの移動機能を見てきました:Goの関数名の前のパラメータ?
type poly struct {
coeffs [256]uint16
}
func (p *poly) reset() {
for i := range p.coeffs {
p.coeffs[i] = 0
}
}
後でとして呼び出すことができますどの:私は、私が知っている他のプログラミング言語でこれを見ていない
var p poly
p.reset()
。リセット機能にはp *poly
の目的は何ですか?それは関数のパラメータのようですが、関数の名前の前に書かれています。それについての明確化?
ゴランツアーhttps://tour.golang.org/methods/1を読むと、あなたの質問に対する洞察が得られます。 – jeevatkm
あなたが物事を理解するときは、アドレス指定可能性とメソッドの呼び出し方法も知っていなければなりません。これは 'ポリ'値が '* poly'値に変換できるかどうかを理解できるようにします。 'p.reset()'を使っているときに 'poly.reset'が' * poly'レシーバを必要とするので、これは重要です。 'p'は' poly'ではなく 'poly'型です。 –