В чем разница между функцией кавычек и использованием кавычек?

Почему я должен предпочесть это:

args: [{{ Values.somevalue | quote }}]

к этому

args: ["{{ Values.somevalue }}"]

Мне кажется, что я где-то читал о разнице, но я могу найти что-нибудь о том, что "" делать в документах, они упоминают только | quote. Но если две строки, которые я написал выше, эквивалентны, зачем вообще создавать функцию quote?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
105
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Интересным свойством Это выглядит какquote является то, что он может принимать произвольное количество параметров, заключать каждый из них в кавычки и помещать один пробел между ними.

{{ $v := "foo" }}
{{ quote $v "bar" "baz" }}
{{/* "foo" "bar" "baz" */}}

Если вам нужно включить его в расширенный конвейер, форма функции может быть удобной.

{{ list (quote $x) | toJson }}
{{/* ["\"foo\""] */}}

Но в остальном он, похоже, не делает ничего особенного и, в частности, не экранирует кавычки.

{{ $x := "foo" -}}
{{/* All produce "foo": */}}
"{{ $x }}"
{{ $x | quote }}
{{ $x | printf "\"%s\"" }}

{{/* Not what you hoped for: */}}
{{ $y := "bar\", \"baz" }}
{{ $y | quote }}
{{/* "bar", "baz" */}}

(FWIW, я почти всегда {{ ... | quote }}; но я думаю, когда я начал изучать Helm, я также ожидал, что это на самом деле будет экранировать, а это не так.)

Похоже, вы также можете использовать двойные кавычки внутри фигурных скобок, чтобы указать строковый литерал, а затем использовать quote, чтобы поместить их в кавычки. Например, если вы хотите, чтобы этот текст отображался в вашем манифесте: "{{ foo }}", то в helm, я думаю, вам нужно {{ "{{ foo }}" | quote }}, что полезно для параметров argo...

Dan 30.07.2019 17:58

Другие вопросы по теме