golang是强语言类型 定义数组必须加类型;但是如何定义才能实现在一个数组中存放多种不同的数据类型呢?
思路:go虽然是强类型语言,但是任何类型都可以转为interfalce{}类型。所以我们定义一个interfalce{}类型,再调用它作为数组存数据就可以实现了。
示例:
package main import "fmt" var name string = "xyz" type list interface { } func main() { number := 100 //数组实现 b := [...]list{1, 2, 3.14, "hello", true, number} //切片实现,更实用 var c []list //或者这样也行: //c := []list{} c = append(c, "good") c = append(c, 555) c = append(c, 9.99) c = append(c, false) fmt.Println(name) fmt.Println(number) fmt.Println("--------------------") fmt.Println(b[0]) fmt.Println(b[1]) fmt.Println(b[2]) fmt.Println(b[3]) fmt.Println(b[4]) fmt.Println(b[5]) fmt.Println(b) fmt.Println("--------------------") fmt.Println(c[0]) fmt.Println(c[1]) fmt.Println(c[2]) fmt.Println(c[3]) fmt.Println(c) }
运行结果:
xyz 100 -------------------- 1 2 3.14 hello true 100 [1 2 3.14 hello true 100] -------------------- good 555 9.99 false [good 555 9.99 false] 进程 已完成,退出代码为 0