Benötige ich Zitate für Strings in Yaml?
Ich bin versucht zu schreiben, eine YAML-Wörterbuch für die Internationalisierung einer Rails-Projekt. Ich bin ein wenig verwirrt, obwohl, wie in einigen Dateien, die ich sehen, strings in Anführungszeichen und einige ohne. Ein paar Punkte zu beachten:
- Beispiel 1 - alle strings mit doppelten Anführungszeichen;
- Beispiel 2 - no strings (mit Ausnahme der letzten zwei) verwenden Sie Anführungszeichen;
- die YAML-Kochbuch sagt: Umschließenden strings in doppelten Anführungszeichen können Sie verwenden escapings zu repräsentieren ASCII-und Unicode-Zeichen. Bedeutet das ich brauche, um doppelte Anführungszeichen verwenden, nur, wenn ich will, zu entkommen einige Zeichen? Wenn ja - warum tun Sie doppelte Anführungszeichen verwenden, überall in der ersten Beispiel - nur um der Einheit Willen /stilistische Gründe?
- die letzten zwei Zeilen von Beispiel 2 verwenden
!
- die nicht-spezifischen tag, während die letzten beiden Zeilen der ersten Beispiel nicht - und beide funktionieren.
Meine Frage ist - was sind die Regeln für die Verwendung der verschiedenen Arten von Anführungszeichen in YAML. Könnte es sein, sagte, dass:
- im Allgemeinen, brauchen Sie nicht zitiert;
- wenn Sie wollen, um die escape-Zeichen in doppelten Anführungszeichen;
- verwenden
!
mit einfachen Anführungszeichen, wenn... ?!?
Danke.
Kommentar zu dem Problem
Der zweite link nicht mehr funktioniert, schlage ich vor, um Ihren Beispielen in der Frage.
InformationsquelleAutor der Frage Alex Popov | 2013-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach einem kurzen Rückblick auf die YAML-Kochbuch zitiert in der Frage und einige Tests durchgeführt, hier ist meine interpretation:
10
aber du willst doch einen String zurückgeben und nicht ein Fixnum, schreiben'10'
oder"10"
.:
,{
,}
,[
,]
,,
,&
,*
,#
,?
,|
,-
,<
,>
,=
,!
,%
,@
,\
).'\n'
würde zurückgegeben werden, wie der string\n
."\n"
würde zurückgegeben werden, wie ein line feed-Zeichen.!ruby/sym
zurück ein Ruby-symbol.Scheint mir, dass der beste Ansatz wäre, nicht verwenden Sie Anführungszeichen, wenn Sie zu haben, und dann, einfache Anführungszeichen zu benutzen, es sei denn, Sie möchten gezielt Prozess-escape-codes.
Update
"Ja" und "Nein" sollte in Anführungszeichen eingeschlossen werden (Einzel-oder Doppelzimmer) oder Sie werden so interpretiert werden, TrueClass und FalseClass Werte:
InformationsquelleAutor der Antwort Mark Berry