【发布时间】:2015-03-04 09:57:23
【问题描述】:
我已经阅读了“Effective Go”和其他类似的问答:golang interface compliance compile type check,但我仍然无法正确理解如何使用这种技术。
请看示例:
type Somether interface {
Method() bool
}
type MyType string
func (mt MyType) Method2() bool {
return true
}
func main() {
val := MyType("hello")
//here I want to get bool if my value implements Somether
_, ok := val.(Somether)
//but val must be interface, hm..what if I want explicit type?
//yes, here is another method:
var _ Iface = (*MyType)(nil)
//but it throws compile error
//it would be great if someone explain the notation above, looks weird
}
如果实现了接口,有没有简单的方法(例如不使用反射)检查值?
【问题讨论】:
-
怎么样 _, ok := interface{}(val).(Somether) ?
标签: interface go type-conversion