Go模板根据alert字段精确值显示文本的实现问题
Go模板条件判断报错的原因及解决方法
问题根源:JSON解析后,
alert字段的数值类型是float64,而你在条件判断里用的1是int类型,Go模板的eq运算符要求两边类型完全一致,类型不匹配就会触发报错。解决方法:
- 方法一:将判断值改为float64类型,用
1.0替代1:{{if eq .alert 1.0}} 这里是alert为1时要显示的指定消息 {{end}} - 方法二:先把
alert转为整数类型再判断(适用于确定alert只会是整数的场景):{{if eq (int .alert) 1}} 这里是alert为1时要显示的指定消息 {{end}}
- 方法一:将判断值改为float64类型,用
验证小技巧:可以通过
{{printf "%T" .alert}}打印alert的实际类型,确认是float64后再用上述方法调整即可。
内容的提问来源于stack exchange,提问作者Tamás Tóth - ebola
相关产品推荐
相关产品推荐

