#【Ruby】メソッドの定義まとめ
rubyのメソッド定義に関する記述のまとめ。
メソッドの定義方法は基本的にpythonと類似。
Rubyは1行目文末に「:」不要。終わりに「end」が必要。
「:」を使ったキーワード引数で、引数名で値を渡すことができる。
目次
##メソッド定義
def メソッド名
処理
end
└ end必須
###メソッドの呼び出し
メソッド名
└ ( )不要 ※引数なしの場合
def hello
puts "こんにちは"
end
hello
#出力
こんにちは
###引数を渡す
def メソッド名(引数名1,引数名2,,)
処理
end
メソッド名(引数名1,引数名2,,)
└ 引数なしでは呼び出せない(ないとエラー)
└ 引数の数は合わせること(合わないとエラー)
└ 引数名が使えるのは定義したメソッドの中のみ(スコープ)
##戻り値
return 値
└ 値をメソッドと置き換える。
└ 値は文字列、数式など
###メソッドで戻り値を使う
def メソッド名
return 値
end
def divide(a,b)
return a/b
end
puts add(10,5)
value=add(10,5)
puts "割り算結果は#{value}です"
#出力
2
割り算結果は2です
###戻り値で真偽値を返す
return 条件式
└ 条件式の結果がtrue/falseで返される
メソッド名?(引数名)
└ 真偽値(true/false)を返すメソッドには「?」をつける
└ 慣習として
def positive?(value)
return value > 0
end
puts positive?(10)
puts positive?(-3)
#出力
true
false
###returnでメソッドが終了する
メソッド内のreturn以降の処理は実行されない。
def divide(a,b)
return a/b
puts "割り算しました"
end
divide(10,5)
#出力
2
※returnのすぐ下の「puts "割り算しました"」は実行されない。
###戻り値とif文(戻り値をif文に渡す)
メソッドの戻り値に真偽値を設定し、if文の条件式でメソッドを呼び出す。
#真偽値を返すメソッド
def discount?(price)
return price >= 1000
end
price=800
if discount?(price)
puts "10%値引きします。価格は#{price*0.9}です。"
else
puts "あと#{1000-price}円で10%割引です"
end
#出力
あと200円で10%割引です
###戻り値とif文(メソッド内でreturnとif文を使う)
メソッドの中でif文と戻り値を使う。
#1000以上で消費税を割り引く
def total_value(price)
if price >= 1000
return price
end
return 1000*1.1
end
puts "お支払い金額は#{total_value(800)}円です"
#出力
お支払い金額は880円です
###キーワード引数
引数の名前で値を指定する。
def メソッド名(引数名A:,引数名B:,,,)
└ 引数名の後ろに「:」をつける
└ 処理は変更なし
メソッド名(引数名B:値,引数名A:値,,,)
└ メソッド内で定義した引数名と合わせる
└ 引数名の後に「:」をつける
def user(name:, age:, gender:, word:)
puts "#{name}さんの年齢は#{age}です"
puts "性別は#{gender}です"
puts "口癖は「#{word}」です"
end
user(gender:"male", name:"JoJo", age:"17", word:"オラオラオラオラオラオラ")
#出力
JoJoさんの年齢は17です"
性別はmaleです"
口癖は「オラオラオラオラオラオラ」です"