Aerospike golang ListInsertOp有多个值

时间:2017-10-10 09:04:19

标签: go aerospike

golang aerospike客户端中的ListInsertOp是否支持插入元素数组?

如果我使用https://godoc.org/github.com/aerospike/aerospike-client-go#ListAppendOp并传递数组([]字符串),它只是将整个数组作为一个值附加到列表中。我使用它错了还是有另一种方法可以做同样的事情?

1 个答案:

答案 0 :(得分:3)

ListAppendOp是一个可变函数,接受interface{}类型的任意数量的参数。如果你调用它来传递你的数组,它会收到一片interface{}[]interface{}),其中包含一个元素就是你的数组。

您需要将数组转换为interface{}切片,并在将其传递给函数时使用...展开它:

a := []string{"a", "b", "c"}

s := make([]interface{}, len(a))
for i, v := range a {
  s[i] = v
}

ListAppendOp("bin1", s...)

将数组传递给可变参数函数的示例: https://play.golang.org/p/541aJ6dY6D

从规格: Passing arguments to ... parameters