Gocql 自定义编组器

我有一个表,它的元组列由一个 int64 和一个 uuid 配对组成:


CREATE TABLE ks.mytable {

    fileid    frozen <tuple <bigint, uuid>>,

    hits      counter,

    ...

我目前可以使用 cql 语句设置字段,例如:


UPDATE ks.mytable hits = hits + 1 WHERE fileid=(? ?);

我传入 2 个变量作为参数, anint64和 a gocql.UUID。


我不想将 2 个变量到处移动,而是将它们放在一个结构中,例如


type MyID struct {

    id  int64

    uid  gocql.UUID

}

然后使用 aMarshaller将这些传递到UPDATE语句中。


这可能吗?我不确定是否可以为元组字段传入单个变量。如果是这样,我该怎么做?我不知道如何 - 我试图模仿https://github.com/gocql/gocql/blob/master/marshal_test.go#L935但我遇到了无法设置字段的错误结构 ( cannot refer to unexported field or method proto)


慕码人2483693
浏览 198回答 1
1回答

慕沐林林

正如您所提到的,您收到以下错误:不能引用未导出的字段或方法 proto这意味着您需要在结构中导出字段,这意味着在 Go 中以大写字母开头。所以你的结构应该是:type MyID struct {&nbsp; &nbsp; Id&nbsp; int64&nbsp; &nbsp; Uid&nbsp; gocql.UUID}然后,它应该工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go