作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我定义了一个自定义类型:
type Thingy map[string]interface{}
我有一个传递空接口(interface)参数的函数:
func f(arg interface{})
我想做的是能够将 arg 类型转换为 Thingy 类型的变量。我一定是误解了 Go 的一些基本知识,因为我无法让它工作:
t, ok := arg.(Thingy)
ok
总是在那里返回 false。有任何想法吗?完整示例在这里:http://play.golang.org/p/TRZsX4v8-S
最佳答案
Thingy
,而是map[string]interface{}
重要的是要理解,仅仅因为类型看起来相似,并不意味着您可以互换使用它们。当有方法集时,这是最重要的。对两种不同类型的 x()
的调用必须是可区分的,即使底层类型相同也是如此。
关于go - 如何将 Go 中的 map 类型转换为自定义类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21251660/
我是一名优秀的程序员,十分优秀!