英文:
Getting error: unknown field in struct literal
问题
我正在尝试运行这段代码:
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: 在结构体字面值中未知的 NullInt64 字段 'Int64'
..\sql\sql.go:27: 在结构体字面值中未知的 NullInt64 字段 'Valid'
请注意,这个错误是由于在结构体字面值中使用了未知的字段 'Int64' 和 'Valid' 导致的。
英文:
I am trying to run this code:
type NullInt64 struct {
sql.NullInt64
}
func ToNullInt64(s string) NullInt64 {
i, err := strconv.Atoi(s)
return NullInt64{Int64: int64(i), Valid: err == nil}
}
but I get this error:
..\sql\sql.go:27: unknown NullInt64 field 'Int64' in struct literal
..\sql\sql.go:27: unknown NullInt64 field 'Valid' in struct literal
答案1
得分: 4
要初始化嵌入的sql.NullInt64,你需要编写以下代码:
NullInt64{sql.NullInt64{Int64: int64(i), Valid: err == nil}}
或者,如果你的NullInt64结构体包含其他字段,你不想显式初始化它们,你可以通过使用其类型来访问嵌入字段:
NullInt64{NullInt64: sql.NullInt64{Int64: int64(i), Valid: err == nil}}
英文:
To initialize the embedded sql.NullInt64, you have to write:
NullInt64{sql.NullInt64{Int64: int64(i), Valid: err == nil}}
or, if your NullInt64 struct contains other fields which you don't want to initialize explicitly, you can access the embedded field by using its type:
NullInt64{NullInt64: sql.NullInt64{Int64: int64(i), Valid: err == nil}}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论