LoginSignup
0
0

More than 1 year has passed since last update.

Ruby 入門 [分割するメソッド]

Last updated at Posted at 2021-09-12

メソッドを定義する→呼び出す

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)————②引数の2xへ代入
    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 ————receiptfalseの時に次の行を実行
     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: "ベンティ")
↪️カフェラテをショートサイズでください
     カフェラテをベンティサイズでください
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0