質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

293閲覧

getメソッドで取得した情報をシンボルオブジェクトに変換したい(超初心者です)

peimish

総合スコア17

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/03/03 06:47

前提・実現したいこと

今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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Rubyのgetsは、改行コードも結果に入ってきます(るりま)。いちばん簡単には、gets.chompとして改行コードを落としておく方法があります。

投稿2018/03/03 06:51

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

peimish

2018/03/03 06:55

納得できました! 迅速に回答して頂きありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問