我想在從數(shù)據(jù)庫(kù)中讀取字符串時(shí)將其小寫(xiě)。我知道這可以在 SQL 中完成,但這是我使用 go 的第一天,這更多是概念證明(和對(duì) go 的理解)而不是實(shí)際需求。使用 Scan 接口從數(shù)據(jù)庫(kù)讀取時(shí),類型 EmailAddress 應(yīng)始終為小寫(xiě),這會(huì)導(dǎo)致恐慌:接口轉(zhuǎn)換:接口是 []uint8,而不是字符串package mainimport ( "database/sql" "github.com/kisielk/sqlstruct" _ "github.com/lib/pq" "log" "strings")type EmailAddress stringfunc (g *EmailAddress) Scan(src interface{}) error { *g = EmailAddress(strings.ToLower(src.(string))) return nil}type User struct { Id int MobilePhone string `sql:"mobile_phone"` Email EmailAddress}func main() { db, _ := sql.Open("postgres", "host=localhost dbname=test sslmode=disable") defer db.Close() rows, _ := db.Query("SELECT id, mobile_phone, COALESCE(email,'') as email FROM users limit 5") for rows.Next() { var t User _ = sqlstruct.Scan(&t, rows) log.Printf("%+v\n", t) }}
- 1 回答
- 0 關(guān)注
- 236 瀏覽
添加回答
舉報(bào)
0/150
提交
取消