前提・実現したいこと
今rubyを勉強し始めたばかりで、引数についての練習問題に取り組んでいる最中です。
その中のハッシュを引数として渡す問題に取り組んでいるのですが、その問題文の条件ではハッシュのキーを文字列で定義しています。
(問題文:
ある映画のハッシュを定義し、格納されている「title」・「genre」・「year」の三つの要素の中から一つを取り出すプログラムを作成してください。
●定義する変数
①movie = {"title" => "ハリーポッター", "genre" => "ファンタジー", "year" => "2001年"}
②ユーザーが入力するキーを、getsメソッドを利用し定義しましょう)
この問題自体は自力でできたのですが、このハッシュのキーをシンボルで定義した場合でも解決したいなと考え取り組んでみました。ですがうまく解決できないため教えて頂ければと思い投稿させて頂きました。
ここに質問の内容を詳しく書いてください。
getsメソッドで取得した情報をシンボルに変換するメソッドはないのかなと思い調べてみたところ、to_symメソッドというものがあると知り、これで問題は解決するかと思ったのですがダメでした。
どうしたらハッシュのキーをシンボルで定義したとき、このプログラムはうまく動くでしょうか?
発生している問題・エラーメッセージ
特にエラーメッセージは出ないのですが、特定の要素を出力せずプログラムが終了してしまいます。
エラーメッセージ
該当のソースコード
ruby
1def information_of_movie(movie, data) 2 puts movie[data] 3end 4 5movie = {title: "ハリーポッター", genre: "ファンタジー", year: "2001年"} 6 7puts "以下から一つを選んで入力してください。 8・title 9・genre 10・year" 11info = gets.to_sym 12 13information_of_movie(movie, info) 14
試したこと
僕としては、変数infoにgetsで取得した文字列をシンボルオブジェクトに変更したもの(例info=:title)が入っているのだろうと考え上記のプログラムを書いてみたのですがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/03 06:55