string - Golang 模板 : Use pipe to uppercase string

标签 string templates go uppercase

我想使用 string.ToUpper 将 golang 模板中的字符串大写,例如:

{{ .Name | strings.ToUpper  }}

但这不起作用,因为 strings 不是我数据的属性。

我无法导入 strings 包,因为警告我它没有被使用。

这里的脚本: http://play.golang.org/p/7D69Q57WcN

最佳答案

只需使用 FuncMap像这样 (playground) 将 ToUpper 函数注入(inject)到您的模板中。

import (
    "bytes"
    "fmt"
    "strings"
    "text/template"
)

type TemplateData struct {
    Name string
}

func main() {
    funcMap := template.FuncMap{
        "ToUpper": strings.ToUpper,
    }

    tmpl, _ := template.New("myTemplate").Funcs(funcMap).Parse(string("{{ .Name | ToUpper  }}"))

    templateDate := TemplateData{"Hello"}
    var result bytes.Buffer

    tmpl.Execute(&result, templateDate)
    fmt.Println(result.String())
}

关于string - Golang 模板 : Use pipe to uppercase string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21031108/

相关文章:

c# - 遍历数组并找到部分字符串

json - 如何在模板之间传递变量 - ARM json

jquery - Ajax新手学习(golang jquery)

Golang 包也必须可以独立于 cli 使用

JavaScript 用退格键连接字符串

c# - 如何根据点获取字符串的子代

将逗号分隔的字符串与数字进行比较时,MySQL 出现奇怪的行为

c++ - 模板函数中的多态性

c++ - 模板,为什么这样调用模板函数不起作用?

function - 传递对象并将其捕获在接口(interface)中时无法访问函数{}