使用 text/template 中的扩展函数

使用 Go 语言 text/template 包中的扩展函数 的 例子. 

package main
 
import (
    "os"
    "text/template"
)
 
type Person struct {
    Name string
    Age  int
}
 
func main() {
 
    t := template.Must(
        template.New("test").Funcs(
            template.FuncMap{
                "lt": func(a, b int) bool { return a < b },
                "eq": func(a, b int) bool { return a == b },
                "gt": func(a, b int) bool { return a > b },
            },
        ).Parse(
            "{{.Name}}:{{ if .Age | lt 5 }} 5 < age.{{else}} 5 > age.{{end}}\n",
        ),
    )
 
    t.Execute(os.Stdout, &Person{
        Name: "lulu",
        Age:  4,
    })
    t.Execute(os.Stdout, &Person{
        Name: "lili",
        Age:  6,
    })
 
    // output:
    // lulu: 5 > age.
    // lili: 5 < age.
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。