プログラミング(Ruby)初心者がおこしがちなミス

この記事は1年以上前に書かれたものです。
情報が古い可能性があります。

こんにちは、渡辺智基です。

Rubyをはじめて2ヶ月、私がよく起こしたミスをまとめました。同じ初心者の方の参考になれば。

スペルミス

エラーが起きた時はまず見てみてほしい。コードを2,3回見て「間違いなんてないよなぁ〜」て思った後に気づくと力が抜けます。

油断してたんでしょ、と言われりゃそれまでですが、人間間違えることは避けられないものです。「a_sample.rb」てファイルと作っておきながら、ターミナルで「ruby an_sample.rb」なんて書いちゃうことがありえます。

getsの返り値の型などを見誤る

習ったメソッドも、使わないと細かいところは忘れてしまいます。getsメソッドなんてまさにそれ。「ユーザーの入力した値を得る」てことだけだと思っていると、無駄なエラーの修正に時間を取られてしまいます。

getsメソッドを習って1ヶ月ぐらい経って、私が忘れていた特徴は次の2つ。どっちもgetsメソッドと同時に習うものですが、案外忘れてました。

(1)返ってくる値は文字列

getsで得た値は、数字ではなく文字列として認識されます。「1」とか「100」でもあくまで文字。

それを忘れると、例えば以下のようなコードを書いてしまいます。

で、これを実行するとこうなります。

解決策は、getsの後にto_iをつける。それだけ。得た値が数字として認識されます。

ちなみに「to_i」の「i」は「integer(整数)」の略です。

(2)改行される

getsで入力した値は勝手に改行されます。例えばこんな感じ。

getsの後にchompをおく、つまり「gets.chomp」と書くと、改行が消せます。

gets関連でエラーが起きたら、まずはこの2つを確認するのがおすすめです。

参照:キーボードからデータを入力しよう