2017-05-16 24 views
1

内の文字列の文字列へのポインタを使用する利点は何か、いくつかのコードを行く私はこれに出くわした:見直し代わりに行く

Person struct { 
    Name *string `json:"name"` 
} 

をして、私が見たところ、いくつか:

Animal struct { 
    Name string `json:"name"` 
} 

ここでポインタの利点は何ですか?

答えて

2

を参照してください。ポインタがなければ

JSON  value of the Name field 
{ }   nil 
{name: ""} pointer to "" 

、それはデコード結果にブランク値から欠損値を区別することはできません:文字列へのポインタが、時には、次のJSONを区別するためにJSONをデコードする際に使用されています。

アプリケーションでこの区別をする必要がない場合は、質問に示されている2番目のフォームを使用します。もっと便利です。

1

*はポインタです。

ポインタ型は、ポインタの基本型と呼ばれる所与 型の変数にすべてのポインタの集合を表します。 初期化されていないポインタの値はnilです。

これはGo Specからのものです。私はそれをすべて読むことをお勧めします。

関連する問題