【问题标题】:Go SQL Scan/Value Interface IssueGo SQL 扫描/值接口问题
【发布时间】:2018-02-27 16:54:52
【问题描述】:

我正在尝试为我的自定义结构添加一个用于自动转换的扫描/值接口。我还能够在 bool 类型上同时实现 Value() 和 Scan(),但是当尝试在带有 gocql.UUID 字段的东西上实现它时,我无法让 Scan() 工作。

非常感谢任何建议!

简短示例:

type Uid struct {
    gocql.UUID
}

func (u *Uid) Scan(value interface{}) error {
    ...
    if sv, err := driver.String.ConvertValue(value); err == nil {
    if v, ok := sv.(string); ok { // <---  THIS DOESN'T WORK
        parsedUUID, _ := gocql.ParseUUID(v)
        ...
    }
}

完整代码: https://play.golang.org/p/ndCZTJZ5rb

【问题讨论】:

    标签: sql go interface cql


    【解决方案1】:

    该值已经被构造为一个字节数组,所以解决方案最终是:

    fmt.Sprintf("%s", sv) 
    

    【讨论】:

      猜你喜欢
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 2018-07-04
      相关资源
      最近更新 更多