14

映画の名前を保存するための Ruby ハッシュを作成しています。

ハッシュのキーが空白を含む文字列である場合、問題なく機能します。

次のように:

movies = {"Avatar" => 5, "Lord of the rings" => 4, "Godfather" => 4}

今、私は文字列の使用をシンボルに置き換えようとしています:

movies = {Avatar: 5, Lord of the rings: 4, Godfather: 4}

明らかにそれはうまくいきません。

Rubyはシンボルの命名で空白をどのように処理しますか?

4

4 に答える 4

18

自分で試してみてください

"Lord of the rings".to_sym
#=> :"Lord of the rings"
于 2013-03-12T04:51:31.953 に答える
7

キー値にスペースが必要なときに記号を使用する理由はわかりませんが、それは可能です。<symbol>: <value>構文を使用してそれを行うことはできません...

{:Avatar => 5, :"Lord of the rings" => 4, :Godfather => 4}
于 2013-03-12T04:50:46.037 に答える
3

スペースを含む記号を作成するには、コロンの後に引用符で囲まれた文字列を入力します。あなたの例では、次のように入力します。

movies = {:Avatar => 5, :'Lord of the rings' => 4, :Godfather => 4}
于 2014-03-24T07:21:11.163 に答える
2

パーティーに遅れましたが、これを回避する別の方法は次のとおりです。

movies = Hash.new

movies["the little mermaid".to_sym] = 4 
于 2015-07-31T22:03:54.900 に答える