我想使用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/

10-13 08:59