请教text template中的变量处理问题

karl_zhao · 2018-09-04 14:25:38 · 1083 次点击

我是新手,能否详细指点一下??

#2
更多评论

正常做法 ,你需要写一个filter。

https://golang.org/pkg/text/template/#FuncMap

temlate文档中本身也有

#1

我给的链接下面就是 example啊,这个也需要我贴么……

package main

import ( "log" "os" "strings" "text/template" )

func main() { // First we create a FuncMap with which to register the function. funcMap := template.FuncMap{ // The name "title" is what the function will be called in the template text. "title": strings.Title, }

// A simple template definition to test our function.
// We print the input text several ways:
// - the original
// - title-cased
// - title-cased and then printed with %q
// - printed with %q and then title-cased.
const templateText = `

Input: {{printf "%q" .}} Output 0: {{title .}} Output 1: {{title . | printf "%q"}} Output 2: {{printf "%q" . | title}} `

// Create a template, add the function map, and parse the text.
tmpl, err := template.New("titleTest").Funcs(funcMap).Parse(templateText)
if err != nil {
    log.Fatalf("parsing: %s", err)
}

// Run the template to verify the output.
err = tmpl.Execute(os.Stdout, "the go programming language")
if err != nil {
    log.Fatalf("execution: %s", err)
}

}

template里可以传入FuncMap,里面是转换函数。

然后在模板里调用转换函数转换

#3