6
我是golang的新手,很抱歉,如果這個問題太天真了。環顧四周,但找不到我的基本問題的答案。在混凝土結構上輸入cast和type assertion?
可以說我有一個具體的結構和方法,如下所示。
type MyData struct{
field1 string
field2 int
}
func(a MyData) OperatorOnString() string{
return a.field1.(string)
}
func(a MyData) OperatorOnInt() int{
return a.field2.(int)
}
我的問題是,我可以輸入並返回而不是執行斷言?從我迄今所學到的是,斷言用於類型接口的數據。但在這種情況下,我有具體的類型。我是否仍然使用斷言,或者我可以執行類似return int(a.field2)
的操作。我知道這個例子是微不足道的,但我很困惑的一點是在兩種轉換類型之間使用。或者這裏涉及到一些golang慣用性?
由於
感謝。然而,在實際情況下,我的操作員將有一些參數用於在MyData字段上操作。因此,在返回該字段之前,是否需要檢查類型? – Minty 2013-05-08 13:50:49
@Minty:顯示真實的代碼。很可能你在混合幾個概念,如果沒有真正的代碼,它不會變得更好。 – Volker 2013-05-08 14:10:57
@Minty:如果一個fn返回類型「T」,那麼只有'T'類型的表達式可以出現在'return expr'中。這不是關於領域,而是關於表達的類型。例如。如果我們在返回'int64'的fn中有'var i int',那麼我們可以並且必須寫'return int64(i)'。廣告「檢查類型」:類型檢查由編譯器自動完成。 – zzzz 2013-05-08 14:11:38