gpt4 book ai didi

go - 如果接口(interface)类型的变量是实现它的某种结构类型,如何检查 Go?

转载 作者:数据小太阳 更新时间:2023-10-29 03:40:15 24 4
gpt4 key购买 nike

假设我有以下内容:

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 类型?

最佳答案

使用 type switch如前所述,@CeriseLimón 链接的旅游页面。

func Foo(v A) {
switch v := v.(type) {
case B:
// It's a B
case C:
// It's a C
}
}

See it in action in the playground .

关于go - 如果接口(interface)类型的变量是实现它的某种结构类型,如何检查 Go?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57982741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com