Do数组在Go中的工作方式与在Ruby或Python中的工作方式相同



在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语言规范
  • 有效去

最新更新