В чем разница между кавычками и строками без кавычек в yaml? - PullRequest
0 голосов
/ 11 мая 2018

На основании этого вопроса: Docker Compose переменная Подстановка с кавычками против

В чем разница между кавычками и строками без кавычек в yaml?

Этот вопрос в основном связан с моим вопросом о подстановке переменных в файле docker compose, который является yml.

Официальный пример приведен:

db:
  image: "postgres:${POSTGRES_VERSION}"

Мне было интересно, будет ли это допустимо без строк:

db:
  image: postgres:${POSTGRES_VERSION}

Если нет, то почему? В каких случаях я должен добавлять кавычки при использовании подстановки переменных в Docker? Как я их узнаю? Как это называется - в случае, если мне нужно провести дальнейшее исследование их в Google?

1 Ответ

0 голосов
/ 12 мая 2018

Краткий ответ: в большинстве случаев нет никакой разницы.

---
foo: bar

совпадает с

---
'foo': 'bar'

Вы должны использовать кавычки, когда используете специальные или зарезервированные символы (например, & или { в начале или :<space>).

Вы также должны использовать кавычки, если скаляр разрешается как специальный тип, например true, false, null, числа и т. Д. Это зависит от версии YAML и схемы.

Это также зависит от приложения / процессора, который вы используете. Они могут делать разные вещи в зависимости от того, цитируется ли скаляр или нет.

В приведенном вами примере цитирование не обязательно, если процессор правильно реализует YAML.

В моих статьях вы можете прочитать все о цитировании и схемах / типах в YAML: http://blogs.perl.org/users/tinita/2018/03/strings-in-yaml---to-quote-or-not-to-quote.html http://blogs.perl.org/users/tinita/2018/01/introduction-to-yaml-schemas-and-tags.html

Дальнейшее объяснение: YAML состоит из узлов, которые имеют три основных типа данных: скаляры, отображения и последовательности. Последовательность - это список скаляров, отображений или последовательностей. Отображение - это карта (или словарь, хэш) ключей значений, оба из которых могут быть всех трех типов. Таким образом, вы получите древовидную структуру или, вернее, график. Например, скаляр может быть строкой, числом или нулем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...