2017-10-10 115 views

回答

2

訣竅創造一個條帶/混合類型的陣列是使用Go提供

inner := []string{"c", "d"} 
all := []interface{}{"a", "b", inner, "e"} 

然後就是空的接口類型json.Marshal接口片。這是可行的,因爲任何和所有的值至少實現一個空的接口。您可以使用最臃腫的對象,就好像它沒有任何要調用的方法/接收器函數一樣。這就是爲什麼人們有時會將interface{}類型稱爲「通用」類型。很多抽象的東西,包使用interface{}參數,然後反射來計算實際傳遞的內容。試想一下,在編碼/ JSON包的源,看看它是如何解組值...

https://play.golang.org/p/96VVo2F1m7

解組將工作在幾乎相同的方式:你可以解組JSON字符串轉換爲interface{}變量。您可能需要使用type-assertions和/或reflection來處理數據。這就是爲什麼最好創建類型...

0

您CA使用的interface{}片,例如https://play.golang.org/p/c8dPRPK6mr

+0

雖然你的回答是正確的,但我相信OP更喜歡從類型化數據開始(即不是'interface {}'的值,以及如何編組這些數據。你正在解組清空接口並直接編組回來,而忽略了所有的值都可以轉換爲「接口{}」 –

相關問題