相关疑难解决方法(0)

Golang用模板中的逗号分隔项目

我正在尝试显示逗号分隔值的列表,并且不希望在最后一个项目后显示逗号(如果只有一个项目,则不显示唯一的项目).

我的代码到目前为止:

Equipment:
    {{$equipment := .Equipment}}
    {{ range $index, $element := .Equipment}}
        {{$element.Name}}
        {{if lt $index ((len $equipment) -1)}}
            ,
        {{end}}
    {{end}}
Run Code Online (Sandbox Code Playgroud)

当前输出:Equipment: Mat , Dumbbell , 如何摆脱尾随逗号

go

31
推荐指数
2
解决办法
1万
查看次数

Google Go的文本模板中范围的最后一个元素的特殊情况处理

我正在尝试使用go的模板系统编写一个看起来像这样的字符串:(p1,p2,p3),其中p1,p2,...来自程序中的数组.我的问题是如何正确地为最后(或第一个)元素放置逗号.

我输出的非工作版本(p1,p2,p3,)看起来像这样:

package main

import "text/template"
import "os"
func main() { 
    ip := []string{"p1", "p2", "p3"}
    temp := template.New("myTemplate")
    temp,_ = temp.Parse(paramList)
    temp.Execute(os.Stdout, ip)

}

const paramList = 
`{{ $i := . }}({{ range $i }}{{ . }}, {{end}})`
Run Code Online (Sandbox Code Playgroud)

到目前为止,我最好的线索可以在http://golang.org/pkg/text/template/中找到以下声明:

如果"范围"操作初始化变量,则将变量设置为迭代的连续元素.另外,"范围"可以声明两个变量,用逗号分隔:

$index, $element := pipeline
Run Code Online (Sandbox Code Playgroud)

在这种情况下,$ index和$ element分别设置为数组/切片索引或映射键和元素的连续值.请注意,如果只有一个变量,则为其分配元素; 这与Go range子句中的约定相反.在哪里建议索引

这表明可以在迭代中获取索引,但我无法弄清楚声明两个变量的范围是什么意思,以及模板中应该声明这些变量的位置.

templates go

8
推荐指数
1
解决办法
5282
查看次数

用于合并文件的 Helm Go 模板

以一组 JSON 文件形式给出,其中包含以下简化数据:file1.json:

{ "name" : "file1" }
Run Code Online (Sandbox Code Playgroud)

文件2.json:

{ "name" : "file2" }
Run Code Online (Sandbox Code Playgroud)

等等。我想创建一个配置映射,最终将这些文件的内容组合成一个 JSON 映射,如下所示:

apiVersion: v1
kind: ConfigMap
metadata:
  name: jsondata
data:
  jsondata: |-
    {
      "file1":  { "name" : "file1" },
      "file2":  { "name" : "file2" }
    }
Run Code Online (Sandbox Code Playgroud)

请注意,最后一项后面不应跟逗号。如果我创建如下所示的模板 yaml:

apiVersion: v1
kind: ConfigMap
metadata:
  name: jsondata
data:
  jsondata: |-
    {
{{- $root := . }}
{{- range $path, $bytes := .Files.Glob "data/json/*.json" }}
  {{ base $path | replace ".json" "" | quote | indent 4 }}: …
Run Code Online (Sandbox Code Playgroud)

templates go kubernetes kubernetes-helm

5
推荐指数
0
解决办法
2620
查看次数

在Go模板中加入范围块

我有一个这样的模板:

 "environment": [
   {{- range $k,$v := .env }}
     {
       "name": "{{ $k }}",
       "value": "{{ $v }}"
     },
   {{- end }}
   ]
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

     "environment": [
    {
      "name": "name",
      "value": "test"
    },
    {
      "name": "region",
      "value": "us-east-1"
    },
  ]
Run Code Online (Sandbox Code Playgroud)

我想将其渲染如下:

    "environment": [
    {
      "name": "name",
      "value": "bxbd"
    },
    {
      "name": "region",
      "value": "us-east-1"
    }
  ]
Run Code Online (Sandbox Code Playgroud)

我无法去掉最后一个逗号来生成有效的 json。或者是否可以以某种方式将完整的范围块发送到某些自定义连接函数?

json dictionary loops go go-templates

1
推荐指数
1
解决办法
2617
查看次数