【发布时间】:2015-01-23 11:02:07
【问题描述】:
我有一个数组(来自 JSON),它总是包含一个字符串和一个 int,如下所示:["foo",42]
现在,我必须使用 []interface{} 和断言 arr[0].(string) arr[1].(int)
我想知道是否有任何方法可以指定数组中预期的类型?我在想像.. [...]{string,int}
谢谢。
【问题讨论】:
-
您可以添加运行时类型断言。 golang.org/ref/spec#Type_assertions。您正在使用第一种形式的类型断言,但您也可以检查断言是成功还是失败。另请参阅:stackoverflow.com/questions/28015753/…
-
是的,这就是我目前正在做的事情。
-
使用结构类型和附加的
UnmarshalJSON方法不是更好吗(以便它可以处理[]与{}的差异)?