在Ruby中,数组可以保存字符串或整数,在Javascript和python中似乎也是如此。但是在Go中,把整数和字符串放在一起似乎很困难,或者至少我不能弄清楚。数组是否能够在Go中以与Python和Ruby相同的方式接受整数和字符串?
Ruby:a = [20, "tim"]
puts a
Python: a = [20, "tim"]
print(a)
:
?
因为Go是一种类型语言,要在Go中创建多个类型的切片,您需要指定一个多个类型都可以满足的类型。要在Go中做到这一点,创建一个空接口(interface{}
)的切片,如下所示:
a := []interface{}{20, "tim"}
fmt.Println(a)
这是有效的,因为空接口是一个没有方法的接口,所以所有类型都将匹配它。
创建混合类型的切片或数组通常不会在Go中完成,但如果需要的话,可以这样做。
你可以在这里阅读更多关于接口的信息:
- Jordan Orelli’s How use interface in Go
- Go语言规范
- 有效去