内の文字列の文字列へのポインタを使用する利点は何か、いくつかのコードを行く私はこれに出くわした:見直し代わりに行く
Person struct {
Name *string `json:"name"`
}
をして、私が見たところ、いくつか:
Animal struct {
Name string `json:"name"`
}
ここでポインタの利点は何ですか?
内の文字列の文字列へのポインタを使用する利点は何か、いくつかのコードを行く私はこれに出くわした:見直し代わりに行く
Person struct {
Name *string `json:"name"`
}
をして、私が見たところ、いくつか:
Animal struct {
Name string `json:"name"`
}
ここでポインタの利点は何ですか?
を参照してください。ポインタがなければ
JSON value of the Name field
{ } nil
{name: ""} pointer to ""
、それはデコード結果にブランク値から欠損値を区別することはできません:文字列へのポインタが、時には、次のJSONを区別するためにJSONをデコードする際に使用されています。
アプリケーションでこの区別をする必要がない場合は、質問に示されている2番目のフォームを使用します。もっと便利です。
*
は、ポインタを意味します。
あなたの場合、Name
は文字列への型ポインタのフィールドです。
*
はポインタです。
ポインタ型は、ポインタの基本型と呼ばれる所与 型の変数にすべてのポインタの集合を表します。 初期化されていないポインタの値はnilです。
これはGo Specからのものです。私はそれをすべて読むことをお勧めします。