这是第一个功能的工作代码:
func (r *Role) Scan(value interface{}) error { *r = Role(value.(string)) return nil}尽管您可能希望使用
s, ok := value.(string)并返回一个错误来
!ok代替恐慌。
a的签名
driver.Valuer不是您给的,而是:
func (r Role) Value() (driver.Value, error) { return string(r), nil}请注意,这不会处理或产生NULL值。
Playground



