Go - 以任意类型的slices作为输入参数(译)

youngsterxyf · 2014-11-05 09:52:11
David
Life is hard but please enjoy it!

反射效率太低了,玩玩儿还可以,稍微有些性能要求的地方是无法接受的。如果确实需要输入一个 slice 的多种类型,建议实现一个类似这样的接口:

type Slice interface {
    func Len() int
    func Get(i int) interface{})
    func Put(i int, interface{})
}

根据需要还可以添加类似SubSlice之类的函数,如果要 read only,也可以不包含Put。元素类型可以不是interface{},而是某个接口。

#1
更多评论