关于 空接口的一些疑问
来源:12-4 package和init函数的关系

城中城
2022-05-13
重新回看了一遍 自己之前的笔记
看到switch 的功能
如下图
这样就判断出 x 是 一个参数为 i 返回值 为 float64 的函数
请问一下 那我如何 那着这个 x 去调用这个函数呢
func cheshi(i int) float64 {
fmt.Println("11111111111")
return float64(i)
}
func main() {
var x interface{}
x = cheshi
switch i := x.(type) {
case nil:
fmt.Printf(" x 的类型 :%T", i)
case int:
fmt.Printf("x 是 int 型")
case float64:
fmt.Printf("x 是 float64 型")
case func(int) float64:
fmt.Printf("x 是 func(int) 型")
case bool, string:
fmt.Printf("x 是 bool 或 string 型")
default:
fmt.Printf("未知型")
}
}
写回答
1回答
-
interface无法直接调用,你想要当做函数一样调用,要断言为函数之后才能调用 比如 x.(func()error)() 这样就可以直接调用了
022022-05-17
相似问题
关于上传文件的疑惑
回答 1
关于channel的一些问题
回答 1
关于Python Typing的一些问题
回答 1
python grpc超时机制有些疑问
回答 1
关于线程和协程的一个疑问
回答 1