Go 变量定义疑问

请教在以下代码中, ia 变量到底是什么类型呢

func main() {
    ia := []interface{}{byte(6), 'a', uint(10), int32(-4)}
    // var numbers = [3]int{1, 2, 3}
    switch v := ia[rand.Intn(4) % 2 ]; interface{}(v).(type) {
    case int32 :
        fmt.Printf("Case A.")
    case byte :
        fmt.Printf("Case B.")
    default:
        fmt.Println("Unknown!")
    }
}

这个方法中

ia := []interface{}{byte(6), 'a', uint(10), int32(-4)}

这个变量声明怎么解释呢

阅读 2.8k
3 个回答

就是一个slice, 元素类型为interface{}; 可以理解为可以存入任何类型的数组

楼上讲的非常好。
[]表示这是一个slice
interface{}表示可以slice中可以存入任何数据
最后{}中的内容就是slice初始化
不过,一般不推荐这样使用slice。速度会有很大影响。

谢谢楼上两位

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题