我从数据库中获取了详细信息,其中几列是sql.NullString
和sql.NullInt64
列。
现在,当我打印它们时,在检查它是否为Valid
之后,它会以{3 true}
格式打印数据。我只想从中打印值3
。
我怎样才能做到这一点?
目前这就是我正在打印的内容:
{{ range $value := .CatMenu }}
... // Other data
{{ $value.ParentID }} // This is sql.NullInt64 type
{{ end }}
答案 0 :(得分:1)
sql.NullInt64
是一个结构:
type NullInt64 struct {
Int64 int64
Valid bool // Valid is true if Int64 is not NULL
}
打印struct值时,默认格式是您当前看到的格式。
如果您之前检查它是否有效且非nil
,则只需打印仅包含数值的NullInt64.Int64
字段。
这是你可以做到的:
{{ range $value := .CatMenu }}
... // Other data
{{ $value.ParentID.Int64 }} // This is sql.NullInt64 type
{{ end }}
请参阅此简单示例进行测试:
vs := []*sql.NullInt64{
{3, true},
{2, true},
}
t := template.Must(template.New("").Parse(
"{{range .}}{{.Int64}}\n{{end}}",
))
if err := t.Execute(os.Stdout, vs); err != nil {
panic(err)
}
输出(在Go Playground上尝试):
3
2