我想使用string.ToUpper大写Golang模板中的字符串,如下所示:

{{ .Name | strings.ToUpper  }}

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

我不能导入strings个包裹,因为系统警告我它没有使用.

下面是脚本: http://play.golang.org/p/7D69Q57WcN

推荐答案

只需使用像这样的FuncMap(playground)将ToHigh函数注入到您的模板中即可.

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())
}

Go相关问答推荐

如何处理Firestore的DataTo方法中的嵌套指针?

向路由发送获取请求时Golang中出现404错误

将Go程序导出到WASM—构建约束排除所有Go文件

Gorm foreign 密钥

AWS S3 SelectObjectContent在AWS SDK v2 for Go中不返回结果

GitHub发布Golang子模块

你能把用户界面文件中的GTK4应用程序窗口添加到GTK4应用程序中吗?

在Golang中Mergesort的递归/并行实现中出现死锁

如何在 zap 记录器库中使用自定义时间函数

为什么 mux.Vars() 返回空的 map[]

如何在 Go msgraph-sdk-go 中转发消息并包括抄送和/或密送收件人?

Go Programming Language书上的例子server2错了吗?

我无法使用反向代理更改主机标头

使用 Go 根据 /etc/shadow 文件中的散列密码验证密码

如何使用 go 包设置标头键和值:shurcooL/graphql 或 hasura/go-graphql-client?

读取非UTF8编码的文件内容并正确打印出来

使用 package`regexp` 查找 Golang 中的所有 mactch 子字符串,但得到意外结果

panic :拨号 tcp:在 172.22.64.1:53 上查找 bookstoreDB:没有这样的主机

如果服务器在客户端的 gRPC 中不可用,则等待的方法

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