Czy potrzebuję cudzysłowów dla ciągów w Yaml?
Próbuję napisać słownik YAML dla internacjonalizacji projektu Rails. Jestem trochę zdezorientowany, ponieważ w niektórych plikach widzę ciągi w podwójnych cudzysłowach, a w niektórych bez. Kilka punktów do rozważenia:
- przykład 1 - wszystkie łańcuchy znaków używają podwójnych cudzysłowów;
- przykład 2 - żadne łańcuchy (poza dwoma ostatnimi) nie używają cudzysłowów;
- the YAML cookbook says: zamykanie łańcuchów w podwójnych cudzysłowach pozwala na użycie escapingów do reprezentowania Znaki ASCII i Unicode. czy to oznacza, że muszę używać podwójnych cudzysłowów tylko wtedy, gdy chcę uciec od niektórych znaków? Jeśli tak-to dlaczego w pierwszym przykładzie wszędzie używają podwójnych cudzysłowów-tylko ze względu na jedność / powody stylistyczne?
- dwie ostatnie linie przykładu 2 używają
!
- niespecyficznego znacznika, podczas gdy dwie ostatnie linie pierwszego przykładu nie-i obie działają.
Moje pytanie brzmi - Jakie są zasady korzystania z różnych typów cytatów w YAML. Można powiedzieć, że:
- ogólnie rzecz biorąc, nie potrzebujesz cudzysłowów;
- jeśli chcesz uniknąć znaków użyj podwójnych cudzysłowów;
- użyj
!
z pojedynczymi cudzysłowami, gdy... ?!?
250
Author: Alex Popov, 2013-10-01
1 answers
Po krótkim przeglądzie cytowanej w pytaniu książki kucharskiej YAML i kilku testach, oto moja interpretacja:]}
- ogólnie rzecz biorąc, nie potrzebujesz cudzysłowów.
- użyj cudzysłowów, aby wymusić łańcuch, np. jeśli twoim kluczem lub wartością jest
10
, ale chcesz, aby zwrócił łańcuch, a nie Fixnum, napisz'10'
lub"10"
. - użyj cudzysłowów, jeśli wartość zawiera znaki specjalne, (np.
:
,{
,}
,[
,]
,,
,&
,*
,#
,?
,|
,-
,<
,>
,=
,!
,%
,@
,\
). - pojedyncze cudzysłowy pozwalają umieścić prawie każdy znak w łańcuchu i nie będą próbowały analizować kodów ucieczki.
'\n'
zostanie zwrócony jako łańcuch\n
. - double quotes parse Escape codes.
"\n"
zostanie zwrócony jako znak kanału linii. - wykrzyknik wprowadza metodę, np.
!ruby/sym
zwracającą symbol Ruby.
Wydaje mi się, że najlepszym podejściem byłoby nie używać cudzysłowów, chyba że trzeba, a następnie używać pojedynczych cudzysłowów, chyba że chcesz przetwarzać kody specjalne.
Update
W przeciwnym razie zostaną one zinterpretowane jako wartości TrueClass i FalseClass:"Yes" I "No" powinny być zawarte w cudzysłowach (pojedyncze lub podwójne).]}
en:
yesno:
'yes': 'Yes'
'no': 'No'
365
Author: Mark Berry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-10 17:56:18
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-10 17:56:18