我正在尝试创建一个方法,该方法将已缓存的数据与从数据库中提取的非缓存数据进行追加。理想情况下,执行类似以下操作的单个方法是最理想的。那么有没有一种方法可以追加两个都是切片的interface{}引用?
package main
import "fmt"
type foo struct {
Name string
}
func main() {
a := []*foo{
&foo{"bar"},
&foo{"boom"},
}
b := []*foo{
&foo{"blam"},
&foo{"pow"},
}
fmt.Println(add(a, b))
}
func add(a, b interface{}) interface{} {
return append([]interface{}{a}, ([]interface{}{b})...)
}
Results https://play.golang.org/p/9cWxPg6daq
[[0x1040a128 0x1040a130] [0x1040a140 0x1040a148]]
期望的结果
[0x1040a128 0x1040a130 0x1040a140 0x1040a148]
更新:基准测试
https://play.golang.org/p/9a8aZckQAF
C:\Users\chris\Go\src\bitbucket.org\chrisolsen\test>go test -bench=.
PASS
BenchmarkWithReflection-4 300000 4580 ns/op
BenchmarkNoReflection-4 300000 4194 ns/op
ok bitbucket.org/chrisolsen/test 2.911s