【Ruby】メソッド
メソッドは、defの後にメソッド名を記述し、引数がある場合は括弧の中に引数名を記述して定義します。
# メソッドを定義する def sayHello(name) return "Hello, " + name end # メソッドを呼び出す puts sayHello("George") puts(sayHello("Paul"))
引数のあるメソッドを呼ぶ場合は、引数を括弧で括っても括らなくてもOKです。
上記プログラムの実行結果は以下のようになります。
Hello, George Hello, Paul
メソッドの戻り値はそのメソッド内の最後の式の値になるのでreturnは省略することができます。
def addNum(num1, num2) # メソッドの中の最後の式の値が戻り値 num1 + num2 end puts addNum(1, 2)
上記プログラムの実行結果は以下のようになります。
3
メソッド呼び出しにブロックを関連付けて、メソッド内でyield文を使ってそのブロックを呼び出すことができます。
def sayHelloWithBlock1 # ブロックを呼び出す yield end sayHelloWithBlock1 { puts "Hello" }
上記プログラムの実行結果は以下のようになります。
Hello
次は引数のあるブロックの例です。
def sayHelloWithBlock2 # パラメータを指定してブロックを呼び出す yield "Hello", "John" yield "Hi", "Ringo" end sayHelloWithBlock2 do |greeting, name| puts greeting + ", " + name end
ブロックの引数は、|で囲んで指定します。
上記プログラムの実行結果は以下のようになります。
Hello, John Hi, Ringo