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

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

最佳答案

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

关于go - Aerospike Golang ListInsertOp多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46662690/

10-13 06:33