2016-03-15 42 views
4
type Animal struct { 
    Name string 
    LegCount int 
} 

snake := Animal{Name: "snake", LegCount: 0} 
worm := Animal{Name: "worm"} 

問:我如何檢查snakeworm他們已經被設定後,告訴:轉:如何檢查結構屬性是否明確設置爲零值?

  1. snake被明確設定了0的​​
  2. worm的​​未明確設置(因此基於其默認值)?
+2

你不能與你所顯示的。什麼是設置值?是由程序員決定還是通過像json,database/sql這樣的包? – JimB

+1

@JimB:謝謝。我將要處理來自API的數據。我假設有一種方法可以與Unmarshal做到這一點,但我不想讓這個問題的範圍太大。 –

回答

9

這根本不可能區分。

如果您正在解組來自XML或JSON的數據,請使用指針。

type Animal struct { 
    Name *string 
    LegCount *int 
} 

您將獲得缺席領域nil值。

您可以在您的情況下使用相同的約定。

+0

謝謝Grzegorz!很有幫助。 –