package main
import "fmt"
func check_value(x interface{}) {
if _, ok := x.([]interface{}); ok {
fmt.Println("arg is slice")
} else {
fmt.Println("arg is not slice")
}
}
func main() {
var x interface{}
x = []int{1, 2}
check_value(x)
}
以上代码会输出: arg is not slice
为什么不能得到正确的结果, 类型断言难道不能断言 []interface{} 这种类型吗?
老爸可以断言成儿子,但是儿子不能断言成老爸!
[]interface{}是集合,interface{}是单体,单体怎么能断言成单体的集合呢?!!!
#4
更多评论