亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

自定義 golang sql.NullString Stringer 接口

自定義 golang sql.NullString Stringer 接口

Go
尚方寶劍之說 2022-07-25 11:21:48
我想覆蓋所有實例 sql.NullString 的 Stringer 接口,以便實例的輸出instance.String而不是{ instance.String, instance.Valid }.這樣做的正常方法是提供一個 Stringer 接口。使用 sql.NullString 時,Stringer 接口方法無法編譯,因為已經存在 String 字段。解決方法是instance.String到處使用。type 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}如果 sql.NullString 之類的結構已經具有 String 字段,如何創建 Stinger 接口?
查看完整描述

2 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

我建議擴展 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-07-25
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

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-07-25
  • 2 回答
  • 0 關注
  • 233 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號