前提・実現したいこと
Ruby初級レベルの者です。
プロを目指す人のためのRuby入門(俗に言うチェリー本)において、
とあるキーワード引数のコードで素朴な疑問があったのでお聞きして理解したいです。
シンボルの認識をしっかりさせたいです。
発生している問題・エラーメッセージ
以下のコード#3おいて解せない点がありました。
キーワード引数を#1で受け取っているのに、#3がなぜ(length / units[**:from] * units[:**to]).round(2)
とならないかがわかりません。(もちろんエラーになります)
どなたかご教授いただけないでしょうか。
#長さの単位変換プログラム #メートル(m),フィート(ft),インチ(in)の単位を相互に変換 #第1引数に変換元の長さ(数値),第2引数に変換元の単位,第3引数に変換後の単位を指定する。 #メソッドの戻り値は変換後の長さ(数値)とする。 def convert_length(length, from: :m, to: :m) #1 units={ m: 1.0, ft: 3.28, in: 39.37, } #2 (length / units[from] * units[to]).round(2) #3 end #4
補足情報(FW/ツールのバージョンなど)
該当書籍 Ruby 2.4
私 Ruby 2.6.3
回答3件
あなたの回答
tips
プレビュー