在go模板中定义数组变量的正确语法是什么?(这里是一个HTML模板).以下是我try 过的:

{{define "template"}}
    {{ $x:=[]int{0,1,2} }}{{$x[0]}}
{{end}}

错误日志(log)显示:unexpected "[" in command

谢谢.

推荐答案

没有内在的方式来实现你想要实现的目标.请参阅关于如何处理参数和管道的arguments条.

但是您可以很容易地定义您自己的函数来实现您的目标:

package main

import (
    "html/template"
    "os"
)

func main() {
tmpl := `
{{ $slice := mkSlice "a" 5 "b" }}
{{ range $slice }}
     {{ . }}
{{ end }}
`
    funcMap := map[string]interface{}{"mkSlice": mkSlice}
    t := template.New("demo").Funcs(template.FuncMap(funcMap))
    template.Must(t.Parse(tmpl))
    t.ExecuteTemplate(os.Stdout, "demo", nil)
}

func mkSlice(args ...interface{}) []interface{} {
    return args
}

Playground美元.

Go相关问答推荐

Golang regexpp:获取带有右括号的单词

如何从google.golang.org/grpc/stats包中将golang中不同事件的输出进行组合,以获取func HandlePRC

如何在AWS SDK Go v2 STS上正确使用重试

使用一元或服务器流将切片从GRPC服务器返回到客户端

使用Go使用Gorm使用外键对数据进行排序

如何使用中间件更改http请求的响应代码?

为什么没有正确生成这些元组?

如何修复 Go 中协议缓冲区定义中重新定义的字段?

使用goqu无法获取响应

一个Go module可以和之前的非module模块发布在同一个路径下吗?

下载和合并时输出文件已损坏

Apache Beam 左加入 Go

致命错误:找不到由 zergon321/reisen 引起的libavcodec/avcodec.h文件

为什么 reflect.TypeOf(new(Encoder)).Elem() != reflect.TypeOf(interfaceVariable)?

Golang Getrlimit 返回与 ulimit 不同的值

Go 并发、goroutine 同步和关闭通道

显示作为服务帐户身份验证的谷歌日历事件 - Golang App

Golang 有类似 C++ 的 decltype 的东西吗?

golangci-lint 的 GitHub 操作失败,无法加载 fmt

在 etcd 键值存储中禁用历史记录