以下错误地为 的值显示“null” 0,但我只希望它完全对 执行此操作nil。
package main
import (
"os"
"text/template"
)
type thing struct {
Value interface{}
}
func main() {
tmpl, _ := template.New("test").Parse("{{if .Value }} {{.Value}} {{else}} [null] {{end}}\n")
tmpl.Execute(os.Stdout, thing{Value: "hi"}) // outputs hi
tmpl.Execute(os.Stdout, thing{Value: nil}) // outputs [null]
tmpl.Execute(os.Stdout, thing{Value: 0}) // outputs [null] - should output 0
tmpl.Execute(os.Stdout, thing{Value: 2}) // outputs 2
}
游乐场链接:https://play.golang.org/p/Gg8uBCOb2vE
我如何让它显示0instead 的价值?
.Value是一个interface{}在问题案例中包含一个int,但可以包含任何内容。
如果对象为 nil,则在模板中显示默认内容;否则,根据设置的属性显示接近但不完全相同的内容
素胚勾勒不出你
相关分类