私は go を学ぶために exercism.com を使用しており、シラバスで推奨されているドキュメントや記事を読んでいます。
今、構造の中に入り、次のコードを見つけます
リーリーしかし、間違って fmt.println("firstname", *&employee.firstname)
と入力してしまい、以前にコード ブロックで使用したのと同じ結果が得られました。
私の質問は、このポインターの使用に違いはありますか、それとも同じですか?
##&x は #xx
へのポインタを生成しますが、*p
は Pointer を逆参照します###。したがって、
* と
& は効果的に互いに打ち消し合います。たとえば、2 つのステートメント
v := *&x と
v := x は同一です。
これは、
*&employee.firstName
employee.firstName と同じであることを意味します。
ここで、
employee
firstName は構造体のフィールドであるため、式
employee.firstName は実際には ## 省略形になります。 #(*従業員).名
の場合。
これは、*&employee.firstName
も
と同じであることを意味します。
常に短縮表記を使用することを優先する必要があることに注意してください。
以上が(*変数) と *&変数 の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。