连接用引号引起来的逗号分隔的字符串(给定包含这些字符串的结构的列表)

尼古拉斯·马歇尔:

我一直在尝试使用go模板呈现以逗号分隔的加引号的字符串列表

例如 "string1", "string2", "string3"

我要渲染的字符串来自一片结构。请参阅Tags此示例中的:

package main

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

const (
    templateString = `{{range .Tags}}"{{.Name}}", {{end}}`
)

var (
    funcs = template.FuncMap{
        "join":  strings.Join,
        "quote": func(in string) string { return fmt.Sprintf("\"%s\"", in) },
    }
    renderData = Task{
        Name:        "something to do",
        Description: "Do that thing",
        Tags: &[]Tag{
            Tag{Name: "tag1"},
            Tag{Name: "tag2"},
        },
    }
)

func main() {
    tmpl, err := template.New("master").Funcs(funcs).Parse(templateString)
    if err != nil {
        log.Fatal(err)
    }

    if err := tmpl.Execute(os.Stdout, renderData); err != nil {
        log.Fatal(err)
    }

}

type Task struct {
    Name        string
    Description string
    Tags        *[]Tag
}

type Tag struct {
    Name string
}

在操场上看

给定以下约束,该怎么办?

  • 我不应该添加任何过于具体的模板功能(例如,将.Names 连接并Tags 引用的功能)(因为我的用户只能编辑模板,而不能编辑Go-code / template-functions,我应该尝试解决以下问题)相同的工具,这意味着模板,也许是非常通用的功能)
松饼上衣:

{{if}}仅在需要时使用来打印逗号。将引号直接添加到模板中:

templateString = `{{range $i, $v := .Tags}}{{if $i}} ,{{end}}"{{.Name}}"{{end}}`

游乐场的例子

如果要转义"名称,请使用内置的printf函数对字符串加引号:

templateString = `{{range $i, $v := .Tags}}{{if $i}} ,{{end}}{{printf "%q" .Name}}{{end}}`

游乐场的例子

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

分割包含连续逗号和用引号引起来的逗号的字符串

如果用双引号引起来,awk上的逗号分隔字符串将忽略

用引号引起来的字符串处理引号

请给RegEx帮助-用引号引起来的字符串中包含双引号

Python:用空格分隔的字符串的每个词都用引号引起来

SQLException:字符串'''后的右引号引起来

如何将逗号分隔的字符串转换为字符串,且每个字符串都用单引号引起来并用逗号分隔

ASP.NET Core API发送用双引号引起来的字符串

Python查找用单引号引起来的字符串

用双引号引起来的字符串拆分问题

检查字符串是否用单引号引起来Javascript

字符串扩展-用引号引起来的变量转义为值

通过Web API发送的字符串用引号引起来

字符串的正则表达式,可选地用引号引起来

PowerShell参数字符串始终用单引号引起来

php:字符串被双引号引起来,而不是单引号引起来。怎么修?

在python中加入字符串列表,并将每个字符串都用引号引起来

在python中加入字符串列表,并将每个字符串都用引号引起来

如何在单引号引起来的字符串中转义单引号

从字符串中删除所有未用单引号或双引号引起来的空格

当元素未用引号引起来时,将列表的字符串表示形式转换为列表

使用util.format,在数组中的每个字符串周围用双引号引起来

Symfony Yaml组件:如何在使用Yaml :: dump时始终将字符串用引号引起来

在UNIX中用引号引起来的字符串中删除换行符

Perl-DBI字符串错误地被双引号引起来

如何在Xamarin.Forms中用引号引起来的字符串

字符串“ Catch Fry's Low Impact”后面的引号引起来

使用JavaScript提取由数字无关的双引号引起来的子字符串

sed:仅在用引号引起来时替换文本中的字符串