假设我有以下内容:
type A Interface{
....
}
//Implements A
type B struct{
....
}
//Imlements A
type C struct{
....
}
现在我有一个函数,它接受A
类型的变量作为参数:
func Foo(obj A){
if A is B{
....
}else if A is C{
....
}
}
还有一个main
函数:
func main(){
b := B{}
Foo(b)
}
如何检查传递给函数的参数是否实际上是类型B
?
使用类型开关,如@CeriseLimón链接的游览页面所述。
func Foo(v A) {
switch v := v.(type) {
case B:
// It's a B
case C:
// It's a C
}
}
在操场上看到它的实际效果。