gpt4 book ai didi

string - 转到模板 : range over string

转载 作者:数据小太阳 更新时间:2023-10-29 03:29:08 25 4
gpt4 key购买 nike

有什么方法可以在 Go 模板中覆盖字符串(也就是说,从模板本身的代码中,而不是从原生 Go 中)?它似乎不被直接支持(管道的值必须是数组、 slice 、映射或 channel 。),但是是否有一些 hack,比如将字符串拆分为单个数组-字符串什么的?

请注意,我无法编辑任何 go 源代码:我在这里使用的是已编译的二进制文件。我需要仅通过模板代码来实现这一点。

最佳答案

您可以使用 FuncMap 将字符串拆分为字符。

package main

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

func main() {
tmpl, err := template.New("foo").Funcs(template.FuncMap{
"to_runes": func(s string) []string {
r := []string{}
for _, c := range []rune(s) {
r = append(r, string(c))
}
return r
},
}).Parse(`{{range . | to_runes }}[{{.}}]{{end}}`)
if err != nil {
log.Fatal(err)
}


err = tmpl.Execute(os.Stdout, "hello world")
if err != nil {
log.Fatal(err)
}
}

这应该是:

[h][e][l][l][o][ ][w][o][r][l][d]

关于string - 转到模板 : range over string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25173549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com