関数にポインターを渡すと、関数が参照する値を変更できます。ただし、この操作を正しく実行するには、ポインタの内部の仕組みを理解する必要があります。
ポインタが指す値を変更するには、ポインタを逆参照することが不可欠です。 Go では、この目的にアスタリスク演算子 (*) が使用されます。ポインタを逆参照すると、ポインタが指す基になる値にアクセスできます。
主な違いは、ポインタの値の変更とポインタの値の変更の違いです。を指します。ポインタ変数に新しい値を代入すると、格納されているアドレスのみが変更されます。たとえば、以下のコード スニペットは、
func f(p *Test) {
p = &Test{4}
}
ポイントされた値を変更するには、逆参照演算子を使用する必要があります。これは、明示的または暗黙的に行うことができます。
明示的な逆参照:
func f(p *Test) {
*p = Test{4}
}
暗黙的な参照解除:
func f(p *Test) {
p.Value = 4
}
どちらの場合も、p が指す値が変更されます。
ポインターをポインターに渡す (*テスト) と、 main関数に格納されるポインタ値。ただし、元のポインターが指す値は変更されません。
func f(p **Test) {
*p = &Test{4}
}
要約すると、関数にポインターを渡すときは、ポインターの値を変更することと、ポインターが指す値を変更することの違いを理解することが重要です。ポインターの逆参照は、後者の操作を実行するために不可欠であり、基になるデータ値を変更できるようになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3