dousha1394 2017-04-11 04:53
浏览 133
已采纳

如果条件在golang模板的范围内,则嵌套

How to use an if condition within a range iteration loop in go?

package main

import "os"
import "text/template"

const t = `{{range $i, $v := .}}{{$i}} {{$v}}{{if $i gt 0}}, {{end}}
{{end}}
`

func main() {
    d := []string{"a", "b", "c"}
    template.Must(template.New("").Parse(t)).Execute(os.Stdout, d)
}

https://play.golang.org/p/IeenD90FRM

  • 写回答

1条回答 默认 最新

  • drll42469 2017-04-11 05:05
    关注

    If you check the error returned from Execute, you will find that the template is attempting to pass arguments to the non-function $i. The correct syntax is:

    const t = `{{range $i, $v := .}}{{$i}} {{$v}}{{if gt $i 0}}, {{end}}
    {{end}}
    `
    

    The arguments follow the function gt. The function gt is not an infix operator.

    playground example

    If your goal is to print a comma separated list, then write it like this:

    const t = `{{range $i, $v := .}}{{if $i}}, 
    {{end}}{{$i}} {{$v}}{{end}}
    `
    

    playground example

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,