英文:
Slice strings in Go templates
问题
你可以使用text/template
包在模板中对字符串进行切片。当然,类似{{ $myString[0:5] }}
这样的写法是无效的。
英文:
How can I slice strings in a template using the text/template
package? Of course, something like {{ $myString[0:5] }}
is not working.
答案1
得分: 9
使用template.Funcs
来定义自己的切片函数。
代码:
t.Funcs(template.FuncMap{
"stringSlice": func(s string, i, j int) string {
return s[i:j]
}
})
模板:
{{ stringSlice .MyString 0 5 }}
参考链接:https://stackoverflow.com/questions/17843311/template-and-custom-function-panic-function-not-defined
PS:正如评论中@dyoo正确指出的那样,这个简单的stringSlice
函数无法防止将UTF-8字符切割成两半。在实际环境中,你可能需要处理这个问题。
英文:
Define your own slicing function with template.Funcs
.
Code:
t.Funcs(template.FuncMap{
"stringSlice": func(s string, i, j int) string {
return s[i:j]
}
})
Template:
{{ stringSlice .MyString 0 5 }}
See also: https://stackoverflow.com/questions/17843311/template-and-custom-function-panic-function-not-defined
PS: As @dyoo correctly noted in the comments; this minimal stringSlice
function does nothing to prevent you from slicing UTF-8 characters in half. You should probably handle that in a live environment.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论