新しい ruby 構文により、次のことが可能になります。
states = {
Oregon: 'OR',
Florida: 'FL',
California: 'CA',
}
どうすれば次のようなものを追加できますか:
states = {
New York: 'NY'
}
New\ York:
またはしようとするとエラーが発生します'New York':
新しい ruby 構文により、次のことが可能になります。
states = {
Oregon: 'OR',
Florida: 'FL',
California: 'CA',
}
どうすれば次のようなものを追加できますか:
states = {
New York: 'NY'
}
New\ York:
またはしようとするとエラーが発生します'New York':
その構文は使用できません。これを行う:
states = {
:"New York" => "NY"
}
また
states = {
"New York".to_sym => "NY"
}
これは、新しい構文では実行できません。
残念ながら、Ruby の正式な文法はどこにも文書化されていませんが、ソース コードは、パーサーが を期待していることを示していtLABEL
ます。つまり、新しい構文のキーは、Ruby の識別子と同じ規則に従う必要があります。
逆の順序で定義してから、適用invert
して元に戻すことができます。
states = {
OR: :"Oregon",
FL: :"Florida",
CA: :"California",
NY: :"New York"
}.invert
これには記号のキーと値がありますが、必要に応じていつでも値を文字列に変換できます。
「新しいスタイル」のハッシュ宣言は、 のようなより正式なスタイルを使用しない限り、定義できるキーの種類がかなり制限されています:"New York" => '...'
。