Open11

自分用Rubyメモ(理解があやふやなところ、毎回忘れるところ)

わんおぺわんおぺ

メソッドの引数としてハッシュを渡す場合は、ハッシュの波括弧は省略できる

# メソッド定義
def test_method(hash_variable)
  hash_variable.each do |key, value|
    puts "key : #{key}"
    puts "value : #{value}"
  end
end

# メソッド呼び出し
a = {first: 1, second: 2}
test_method(first: 1, second: 2)
# 実行結果
key : first
value : 1
key : second
value : 2
わんおぺわんおぺ

ハッシュの表現方法3パターン

{"first" => 1, "second" => 2}
{:first => 1, :second => 2}
{first: 1, second: 2}
わんおぺわんおぺ

演算子の正体

  • Rubyでは、ほとんどの演算子はメソッドのシンタックスシュガーとなっている
# 以下の加算演算子(+)は、Integerオブジェクトのインスタンスメソッドのシンタックスシュガーである
irb> 1 + 2
=> 3

irb> 1.+(2)
=> 
=>3
  • ただし例外として、以下の演算子はメソッドのシンタックスシュガーではない
=, .., ..., not, &&, and, ||, or, ::

参考

わんおぺわんおぺ

クラスメソッドの定義

  • 個人的にはパターン1か3のやり方がいいかも
  • パターン1 : メソッド名の前にselfをつけるやり方
class Hoge
  def self.nantoka
  end
end
  • パターン2:selfではなくクラス名を指定するやり方
class Hoge
  def Hoge.nantoka
  end
end
  • パターン3:class << self〜endで囲むやり方
class Hoge
  class << self
    def nantoka
    end
  end
end

参考