为了账号安全,请及时绑定邮箱和手机立即绑定

Custom golang sql.空字符串字符串接口

Custom golang sql.空字符串字符串接口

Go
慕容3067478 2022-08-01 11:04:02
我想覆盖所有实例sql的Stringer接口。空字符串,以便实例的输出不是 。instance.String{ instance.String, instance.Valid }执行此操作的正常方法是提供 Stringer 接口。使用 sql.NullString Stringer 接口方法无法编译,因为已经存在一个 String 字段。解决方法是在任何地方使用。instance.Stringtype NullString sql.NullString// this fails to compile as sql.NullString has a field named String  func (x *NullString) String() string {    if !x.Valid {        x.String = ""    }    return x.String}如果已经是结构,如何创建Stinger接口,如sql。NullString,有一个字符串字段?
查看完整描述

2 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

我建议扩展 sql。NullString 和重写或向扩展类型添加方法。


// NS extends sql null string

type NS struct{ sql.NullString }


func (s NS) String() string {

    return s.NullString.String

}

NS将具有sql的方法。NullString以及附加到NS本身的方法也是如此。


以下是 playgorund 中的用法示例


查看完整回答
反对 回复 2022-08-01
?
慕雪6442864

TA贡献1812条经验 获得超5个赞


import "database/sql/driver"


type NullString struct { ns sql.NullString }


func (s *NullString) Scan(value interface{}) error {

    return s.ns.Scan(value)

}


func (s NullString) Value() (driver.Value, error) {

    return s.ns.Value()

}


func (s NullString) String() string {

    return s.ns.String

}


查看完整回答
反对 回复 2022-08-01
  • 2 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信