ホームページ >バックエンド開発 >Golang >(*変数) と *&変数 の違いは何ですか?

(*変数) と *&変数 の違いは何ですか?

王林
王林転載
2024-02-05 21:30:041049ブラウズ

(*variable) 和 *&variable 有什么区别?

質問の内容

私は go を学ぶために exercism.com を使用しており、シラバスで推奨されているドキュメントや記事を読んでいます。

今、構造の中に入り、次のコードを見つけます

リーリー

しかし、間違って fmt.println("firstname", *&employee.firstname) と入力してしまい、以前にコード ブロックで使用したのと同じ結果が得られました。

私の質問は、このポインターの使用に違いはありますか、それとも同じですか?


正解


##&x は #xx へのポインタを生成しますが、*p は Pointer を逆参照します###。したがって、*& は効果的に互いに打ち消し合います。たとえば、2 つのステートメント v := *&xv := x は同一です。 これは、*&employee.firstName

employee.firstName と同じであることを意味します。 ここで、employee

は構造体へのポインタ、

firstName は構造体のフィールドであるため、式 employee.firstName は実際には ## 省略形になります。 #(*従業員).名の場合。 これは、*&employee.firstName

(*employee).firstName

と同じであることを意味します。 常に短縮表記を使用することを優先する必要があることに注意してください。

以上が(*変数) と *&変数 の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。