2017-09-19 7 views
0

カスタム構造体の自動変換のスキャン/値インターフェイスを追加しようとしています。私はBool型でValue()とScan()の両方を実装することもできましたが、gocql.UUIDフィールドで何かを実装しようとすると、Scan()を動作させることができません。SQLスキャン/バリューインターフェイス問題

ご意見をいただければ幸いです。

ショート例:

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

答えて

1

値がすでにバイト配列として構成するので、溶液はなってしまった。

fmt.Sprintf("%s", sv)