プロを目指す人のためのRuby入門 その6
第5章 ハッシュやシンボルを理解する
久しぶりに Ruby の勉強をします。
ハッシュの使い方
Javaでいうとマップですね。
# ハッシュ currencies = { 'japan' => 'yen', 'us' => 'dpllar', 'india' => 'rupee' } # 要素の追加 既にキーが存在している場合は上書きされる currencies['italy'] = 'euro' p currencies # 要素を取得 p currencies['japan'] # 引数が一つのときはキーが渡される。二つのときはキーと値 currencies.each do |key, value| puts "#{key} : #{value}" end # 要素の削除 currencies.delete('japan')
シンボルの使い方
:apple p :apple.class # Symbol
シンボルは文字列よりも高速に比較ができます。文字列との違いは破壊的な利用ができないことです。
# シンボルをハッシュのキーにする currencies = { :japan => 'yen', :us => 'dollar', :india => 'rupee'} p currencies
キーワード引数を用いた関数
def convert_length(length, from: :m, to: :to) units = {m: 1.0, ft: 3.28, in: 39.37} (length / units[from] * units[to]).round(2) end class ConvertLengthTest < Minitest::Test def test_convert_length assert_equal 39.37, convert_length(1, from: :m, to: :in) assert_equal 0.38, convert_length(15, from: :in, to: :m) assert_equal 10670.73, convert_length(35000, from: :ft, to: :m) end end
本
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る
感想
今まで Eclipse で Ruby を使っていたんですが、Eclipse だとキーワード引数を使うとエラーを指摘するんですよね。そのまま実行すると大丈夫なんですが、なんででしょう。
Atom に変えて見たらエラーの指摘はなくなったんですが、"require" を使って別のフォルダのファイルを使おうとしたときに、相対パスを使うとエラーになるんですよね。relative を使っても駄目でした。絶対パスにすれば実行できましたが、気になりますね。
Linux 環境で構築したほうが良いのかな。