企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 类型断言 类型断言用于提取接口的底层值(Underlying Value) ~~~ v, ok := parm.(Animal) ~~~ 示例: ~~~ package ch1 import ( "fmt" "testing" ) type Animal interface { Run() } type Person struct { name string } func (p Person) Run() { fmt.Println("Persion running") } // 类型断言 func EqualAnimal(param interface{}) bool { _, ok := param.(Animal) fmt.Println("is animal:", ok) return ok } // 类型选择(Type Switch) func IsAnimal(parm interface{}) { switch parm.(type) { case Animal: fmt.Println("is Animal") default: fmt.Println("unknown") } } func TestPersonRunning(t *testing.T) { p := Person{"jim"} //IsAnimal(p) EqualAnimal(p) } ~~~ *说明:如果一个类型实现了接口,那么该类型与其实现的接口就可以互相比较*