我正在使用 go-couchbase 将数据更新到 couchbase,但是,我在如何使用回调函数方面遇到了问题。
该函数Update要求我传递一个回调函数,其中应该是UpdateFunc
func (b *Bucket) Update(k string, exp int, callback UpdateFunc) error
所以这就是我所做的
首先,我声明了一个类型UpdateFunc:
type UpdateFunc func(current []byte) (updated []byte, err error)
然后在代码中,我添加以下几行:
fn := UpdateFunc{func(0){}}
然后调用Update函数:
bucket.Update("12345", 0, fn()}
但是 Go 返回以下错误:
syntax error: unexpected literal 0, expecting ) for this line fn := UpdateFunc{func(0){}}
那么我做错了什么?那么我怎样才能使回调函数工作呢?
附加信息
谢谢你的所有建议。现在我可以按如下方式运行回调函数:
myfunc := func(current []byte)(updated []byte, err error) {return updated, err }
myb.Update("key123", 1, myfunc)
但是,当我运行存储桶的更新功能时。我检查了沙发数据库。密钥为“key123”的文件消失了。似乎更新不会更新值而是删除它。发生了什么?
蓝山帝景
相关分类