如果您不知道值的类型,则只需检查值是否实现了接口。如果类型已知,则该检查由编译器自动完成。
如果您仍然想进行检查,则可以使用您提供的第二种方法进行检查:
var _ Somether = (*MyType)(nil)
在编译时会出错:
prog.go:23: cannot use (*MyType)(nil) (type *MyType) as type Somether in assignment: *MyType does not implement Somether (missing Method method) [process exited with non-zero status]
您在这里所做的就是将
MyType类型(和
nil值)的指针分配给type 的变量
Somether,但是由于变量名
_是忽略的。
如果
MyType实施
Somether,它将编译且不执行任何 *** 作
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)