如何比较golang中html/template中列表的长度?

新手上路,请多包涵

我正在尝试比较 golang html/template 中列表的长度。但它永远加载在 html 中。

 {{ $length := len .SearchData }} {{ if eq $length "0" }}
    Sorry. No matching results found
{{ end }}

谁能帮我解决这个问题?

原文由 Dany 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 535
2 个回答

从文档中,

{{if pipeline}} T1 {{end}}:如果pipeline的值为空,则不产生输出;否则,执行 T1。空值为 false、0、任何 nil 指针或接口值,以及任何长度为零的数组、切片、映射或字符串。点不受影响。

所以如果你想检查 .SearchData slice/array/map 是否为空,只需使用,

 {{if not .SearchData}} Nothing to show {{end}}

如果字符串 "0" 被替换为 int 0 ,即使你的代码运行良好

{{ $length := len .SearchData }} {{ if eq $length 0 }}
    Sorry. No matching results found
{{ end }}

http://play.golang.org/p/Q44qyRbKRB

原文由 Aruna Herath 发布,翻译遵循 CC BY-SA 3.0 许可协议

较短的版本

{{ if eq (len .SearchData) 0 }}
    Sorry. No matching results found
{{ end }}

原文由 emicklei 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题