2016-04-23 22 views
0

structのフィールド値がnilであるかどうかを確認するきれいな方法があれば、structのフィールドがnilであるかどうか確認してください

私は

type test_struct struct { 
    Name string `json:"name" binding:"required"` 
    Email string `json:"email" binding:"required"` 
    Message string `json:"message" binding:"required"` 
} 

そしてGinと私は

var temp test_struct 
c.Bind(&temp) 

ような値でstructを満たしていますし、すべてが正常に動作しますが、私はtemp.Nameのいずれかどうかを確認したい、temp.Emailtemp.Messageを持っていると仮定nilです。nilif temp.Name == nilなどと各フィールドを比較するだけで確認できますが、私はきれいなものを探していますそのバージョンはありますか?

UPDは:原因Go言語での知識の欠如に私たちはbinding:"required"フィールドでstrucureを渡すとginパッケージのBind関数がエラーを返すことを知りませんでした。 @ matt.sに感謝します。だから、答えはerrをチェックするために、次のようになります。

var temp test_struct 
err := c.Bind(&temp) 
if err != nil { 
    // Do my stuff(some of fields are not set) 
} 
+1

文字列は移動しないでください。 –

答えて

3

あなたが最初のバインドがエラーを返さないことを確認する必要があります。そうでない場合は、すべてのフィールドが適切な値に設定されるか、そうでない場合は0に初期化されます。これは、文字列がゼロでないことが保証されていることを意味します(値がない場合は""に設定されます)。

関連する問題