获取错误:struct literal中的未知字段

时间:2015-10-13 09:04:51

标签: go

我正在尝试运行此代码:

type NullInt64 struct {
    sql.NullInt64
}

func ToNullInt64(s string) NullInt64 {
    i, err := strconv.Atoi(s)
    return NullInt64{Int64: int64(i), Valid: err == nil}
}

但是我收到了这个错误:

..\sql\sql.go:27: unknown NullInt64 field 'Int64' in struct literal
..\sql\sql.go:27: unknown NullInt64 field 'Valid' in struct literal

1 个答案:

答案 0 :(得分:3)

要初始化嵌入的sql.NullInt64,您必须编写:

NullInt64{sql.NullInt64{Int64: int64(i), Valid: err == nil}}

或者,如果您的NullInt64结构包含您不想显式初始化的其他字段,则可以使用其类型访问嵌入字段:

NullInt64{NullInt64: sql.NullInt64{Int64: int64(i), Valid: err == nil}}