Как обрезать строку в шаблоне YAML Go? - PullRequest
1 голос
/ 16 апреля 2020

У меня есть следующее values.yaml -

foo:
  - a: bar1
    b: bar2
  - a: bar3 
    b: bar4

Я использую шаблоны следующим образом -

data:
  string:
{{range .Values.foo}}
  {{ .a ` and ` .b ` or `}}
{{end}}

Вывод -

data:
  string: bar1 and bar2 or bar3 and bar4 or

Как я могу избавиться от трейлинга или?

1 Ответ

1 голос
/ 18 апреля 2020

Когда вы перебираете список range, вы можете установить для локальных переменных фактический индекс и значение (зеркальное отображение Go семантика). Таким образом, вы можете изменить это, чтобы поставить «или» в начале, но пропустите его в первый раз через l oop.

data:
  string:
    {{ range $i, $v := .Values.foo -}}
    {{- if ne $i 0 }} or {{ end -}}
    {{- printf "%s and %s" $v.a $v.b -}}
    {{- end }}
...