新手求教一个类型断言的问题
資深大佬 : inori 5
我理解 go 断言返回的应该是对应类型的对象,比如说
package main
package main
import (
“fmt”
)
func findType(i interface{}) {
switch x := i.(type) {
case int:
fmt.Println(x, “is int”)
case string:
fmt.Println(x, “is string”)
case nil:
fmt.Println(x, “is nil”)
default:
fmt.Println(x, “not type matched”)
}
}
func main() {
findType(10) // int
findType(“hello”) // string
var k interface{} // nil
findType(k)
findType(10.23) //float64
}
这里 x 应该是具体类型的值 10, “hello”之类的,为什么可以和 int string 这些 case 匹配呢?
大佬有話說 (4)