我定义了自定义类型:
type Thingy map[string]interface{}
我有一个传递空接口参数的函数:
func f(arg interface{})
我想做的是能够将arg转换为Thingy类型的变量。我必须误解Go的一些基本原因,因为我无法让它发挥作用:
t, ok := arg.(Thingy)
ok
总是在那里返回false。有任何想法吗?完整示例:http://play.golang.org/p/TRZsX4v8-S
答案 0 :(得分:3)
Thingy
,而是传递map[string]interface{}
重要的是要理解,因为类型看起来相似,这并不意味着您可以互换使用它们。当有方法集时,这是最重要的。即使基础类型相同,也必须区分对两种不同类型的x()
的调用。