Ruby 1.9 Hash mit einem Strich in einem Schlüssel
In ruby 1.9 gibt es eine Möglichkeit zu definieren, diesen hash mit der neuen syntax?
irb> { a: 2 }
=> {:a=>2}
irb> { a-b: 2 }
SyntaxError: (irb):5: syntax error, unexpected tLABEL
{ a-b: 2 }
^
mit der alten, es funktioniert:
irb> { :"a-b" => 2 }
=> {:"a-b"=>2}
InformationsquelleAutor der Frage makevoid | 2010-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie auch neben syntax
InformationsquelleAutor der Antwort Stiig
Gibt es einige legitime Symbole, die nicht verwendet werden mit der neuen syntax. Ich kann nicht finden, einen Verweis, aber es scheint, dass ein symbol, name-matching -
/^[a-zA-Z_][a-zA-Z_0-9]*[!?]?$/
ist erlaubt, mit der neuen syntax. Die letzten Zeichen die speziellen Zeichen "!" oder "?".Für jedes symbol, das nicht treffen diese Einschränkungen aufzuheben, müssen Sie die Ruby-1.8-syntax
:'my-symbol-name'
InformationsquelleAutor der Antwort Wayne Conrad
Verwenden Sie Bindestriche, mit der neuen syntax:
Generiert:
Dies ist möglicherweise nicht genau Ihren speziellen Anwendungsfall, aber ich fand diesen post-beim Versuch eine Antwort zu finden, mich selbst, so ich dachte, ich Teile meine Erkenntnisse.
InformationsquelleAutor der Antwort Nate
Können Sie kombinieren die alte und neue syntax:
InformationsquelleAutor der Antwort sl80