go实现python的列表list中存放不同类型数据的方法

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


Posted in Go