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

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

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

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

Q&A

解決済

3回答

310閲覧

Ruby ハッシュ、数字を入れるときにでるエラー

Nish

総合スコア14

Ruby

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

0グッド

0クリップ

投稿2020/02/15 18:00

前提・実現したいこと

Rubyで入力してもらって、
12ならDecember, 4ならAprilと表示したいと思っています。
それでハッシュが使えると思い使ってみましたが、エラーが出ています。
case を使って書こうと思いましたがながながとなるので、なんか面倒なのでハッシュを使いました。
お知恵を頂戴できれば幸いです。

発生している問題・エラーメッセージ

エラーメッセージ
test.rb:19: syntax error, unexpected =>, expecting '}'
...", 4 => "April", 5 => "May"=> 6: "June", 7=> "July", 8=> ...
mbphgn:rubytest hgnsuika$ ruby test.rb
test.rb:19: syntax error, unexpected =>, expecting '}'
..., 4 => "April", 5 => "May" => 6: "June", 7=> "July", 8=> ...
mbphgn:rubytest hgnsuika$ ruby test.rb
test.rb:19: syntax error, unexpected =>, expecting '}'

該当のソースコード

emonthly = {1=> "January", 2 => "February", 3 => "March", 4 => "April", 5 => "May", 6: => "June", 7=> "July", 8=> "August", 9 => "September", 10 => "October", 11=> "November",12=> "December"}

試したこと

数字を使う場合、シンボルを使うとエラーがでるとうことなので、
昔ながらの書き方で書きましたが、それでもうまくいかないようです。

補足情報(FW/ツールのバージョンなど)

vs cord macbook pro2013です。
Rubyruby 2.6.3p62 (2019-04-16 revision 67580)

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

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

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

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

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

guest

回答3

0

ベストアンサー

自分で月名を定義しないで、Rubyの組み込みライブラリのDateを使う方法もあります。
Ruby がDate::MONTHNAMESに英語の月名を配列で定義しているので、それを利用しています。

rb

1require `date` 2 3Date::MONTHNAMES[1] 4=> "January" 5 6Date::MONTHNAMES[2] 7=> "February" 8 9Date::MONTHNAMES[12] 10=> "December"

https://ruby-doc.org/stdlib-2.7.0/libdoc/date/rdoc/Date.html

投稿2020/02/16 01:34

shgtkshruch

総合スコア665

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

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

Nish

2020/02/17 13:48

ご助言ありがとうございます。勉強になります。
guest

0

エラーはdodox86さんの回答通りです。
入力を文字としての"1"でなく数値として扱うのならHashでなくArrayでもできます。
emonthly = ["","January","February", "March","April",,,,"December"]
とすれば emonthly[month] でHashと同じ使い方でできます。

投稿2020/02/16 01:01

winterboum

総合スコア23567

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

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

Nish

2020/02/17 13:47

ご助言ありがとうございます。大変勉強にになりました。
guest

0

6 => "June" とすべきところが 6: => "June"になっています。:は除去してください。

投稿2020/02/15 18:10

dodox86

総合スコア9256

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問