#メソッドを定義する→呼び出す
def area
puts 2 * 2
end
area
↪️4
メソッドを定義するには、defにつづいてメソッド名を書きく。defは後につづく名前のメソッドを定義する。
定義したメソッドは、メソッド名を書くことで呼び出す(実行する)ことができる。
def area
2 * 2
end
puts area
↪️4
メソッドは最後の実行結果が戻り値として呼び出し元へ返る仕組み。areaメソッドの中でputsするのをやめて、計算した結果の整数オブジェクト(ここでは4)を戻り値として返すように変更した。
def area
2 * 2
end
result = area ———area が戻り値 4 で置き換わって result = 4 となる
puts result
↪️4
戻り値は変数に代入することもできる。
#メソッドへオブジェクトを渡す
###引数を使ってオブジェクトを渡せるメソッドを定義する
def area(x)————②引数の2をxへ代入
x * x ————③2 × 2を計算し、戻り値4を返す
end
puts area(2) ————①メソッド呼び出し(引数は2)
↪️4
###メソッドを途中で終わらせる-return
def thanks_and_receipt
puts "ありがとうございました。"
return --------- ここでメソッドが終わる
puts "こちら、レシートになります。" ————この行は実行されない
end
thanks_and_receipt
↪️ありがとうございました。
###retutnは戻り値を指定する機能もある。
def thanks_and_receipt(receipt)
greeting = "ありがとうございました。"
unless receipt ————receiptがfalseの時に次の行を実行
return greeting ——returnを実行し、変数greetingに代入されたオブジェクトを戻り値にする
end
greeting + "こちら、レシートになります。" ————“こちら、レシートになります。”を追加して
end 戻り値にする。
puts thanks_and_receipt(true)
↪️ ありがとうございました。こちら、レシートになります。
###引数を省略した時のデフォルト値
def order(item = "コーヒー") ————itemのデフォルト値に”コーヒー”を指定
"#{item}をください"
end
puts order ————引数を省略して呼び出すと”コーヒーをください”が返される
puts order("カフェラテ")
puts order("モカ")
↪️コーヒーをください
カフェラテをください
モカをください
変数itemにデフォルト値である”コーヒー”が代入される。引数をした場合は使われない。
###引数の順番を変えられるキーワード引数
def order(item:, size:) ————引数名の後ろに:をつけるとキーワード引数になる
"#{item}を#{size}サイズでください"
end
puts order(item: "カフェラテ",size: "ベンティ") —————引数を名前付きで指定できる
puts order(size: "ベンティ",item: "カフェラテ") —————引数の順番も変えられる
↪️カフェラテをベンティサイズでください
カフェラテをベンティサイズでください
###キーワード引数でのデフォルト値
def order(item:, size: "ショート") ————sizeのデフォルト値に”ショート”を設定
"#{item}を#{size}サイズでください"
end
puts order(item: "カフェラテ") ————省略するとデフォルト値が使われる
puts order(item: "カフェラテ",size: "ベンティ")
↪️カフェラテをショートサイズでください
カフェラテをベンティサイズでください