2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】メソッドの定義まとめ

Last updated at Posted at 2020-05-30

#【Ruby】メソッドの定義まとめ

rubyのメソッド定義に関する記述のまとめ。

メソッドの定義方法は基本的にpythonと類似。
Rubyは1行目文末に「:」不要。終わりに「end」が必要。

「:」を使ったキーワード引数で、引数名で値を渡すことができる。

目次

  1. メソッド定義
  2. メソッドの呼び出し
  3. 引数を渡す
  4. 戻り値
    1. メソッドで戻り値を使う
    2. 戻り値で真偽値を返す
    3. returnでメソッドが終了する
    4. 戻り値とif文(戻り値をif文に渡す)
    5. 戻り値とif文メソッド内でreturnとif文を使う
  5. キーワード引数

##メソッド定義

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)を返すメソッドには「?」をつける
 └ 慣習として

0以上かを真偽値で返すメソッド
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です"
口癖は「オラオラオラオラオラオラ」です"

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?