我有一个表,其中有一个由int64和一个uuid组成的元组列:
CREATE TABLE ks.mytable {
fileid frozen <tuple <bigint, uuid>>,
hits counter,
...
而且我目前可以使用cql语句来设置字段,例如:
UPDATE ks.mytable hits = hits + 1 WHERE fileid=(? ?);
我传入了两个变量作为参数
int64
和gocql.UUID
。我不想将2个变量随处移动,而是想将它们放在一个结构中,例如
type MyID struct {
id int64
uid gocql.UUID
}
然后使用
Marshaller
将它们传递到UPDATE
语句中。这可能吗?我不确定是否可以为元组字段传递单个变量。如果是这样,我该怎么做?我不知道如何-我试图模仿https://github.com/gocql/gocql/blob/master/marshal_test.go#L935,但是在无法在struct(
cannot refer to unexported field or method proto
)中设置字段的地方遇到错误 最佳答案
如前所述,您收到以下错误:
这意味着您需要在struct中导出字段,这意味着在Go中以大写字母开头。因此,您的结构应为:
type MyID struct {
Id int64
Uid gocql.UUID
}
然后,它应该工作。