【golang】传递任意类型的切片
前言
Golang 是一门类型严格的静态语言。看看下面的代码
type MyInt = int
var bar MyInt = 2
var foo int = 1
虽然上面 foo 和 bar 的底层类型都是一样的,是 int, 但是 bar 和 foo 的类型在语言层面并不一样,因此它们不能互相赋值,这样会引起 panic。
所以这样就出现了一个问题,有时候我们并不想关心传递进来的类型,比如我想实现一个函数叫traverse
,我想遍历传入进来的slice
,但是我并不关心传入进来的slice
是什么类型。哦克,初始版本我可能会这样写
func traverse(slice []interface{
}) {
for _, v := range s {
fmt.Println(v)
}