●問題
ある映画のハッシュを定義し、格納されている「title」(タイトル)・「genre」(ジャンル)・「year」(公開年)の三つの要素の中から一つを取り出すプログラムを作成してください。
●定義する変数
①movie = {"title" => "ハリーポッター", "genre" => "ファンタジー", "year" => "2001年"}
②ユーザーが入力するキーを、getsメソッドを利用し定義しましょう
●模範解答
lang
1def movie_info(movie, data) 2 puts "#{movie[data]}" 3 end 4 5 movie = {"title" => "ハリーポッター", "genre" => "ファンタジー", "year" => "2001年"} 6 7 puts "以下から一つを選んで入力してください。 8 ・title 9 ・genre 10 ・year" 11 12 info = gets.chomp 13 14 movie_info(movie, info)
模範解答ではハッシュのキーに文字列を利用していますが、私は以下のようにシンボルを利用して書きました。
lang
1def movie_select(movie, imput) 2 puts "#{movie[imput]}" 3end 4 5movie = {:title => "ハリーポッター", :genle => "ファンタジー", :year => "2001年"} 6 7puts "以下から一つを選んで入力してください。 8 ・title 9 ・genre 10 ・year" 11 12imput = gets.chomp 13 14movie_select(movie, imput)
この書き方だと、出力した際に
lang
1MBP-Kei:Desktop keita$ ruby sample.rb 2以下から一つを選んで入力してください。 3 ・title 4 ・genre 5 ・year 6title 7
と、最後の文が空白になってしまいます。
原因として
・メソッド内の#{movie[imput]の記述がおかしい
ということを検討したのですが、解決に至りませんでした。
ハッシュ内でシンボルオブジェクトを利用してこの問題解決に望む場合、メソッド内などではどのように記述してあげればいいのでしょうか?
Rubyタグの追加をお願いします。
回答2件
あなたの回答
tips
プレビュー