アマグラミング

プログラミング初心者が勉強したことを復習とメモがてら書いているだけです。

(36)メソッドの戻り値について、キーワード引数について

メソッドの戻り値について勉強しようと思います。

 

メソッドの処理結果を呼び出し元で受け取ることができます。

そのときの値、処理結果を戻り値といいます。

そしてメソッドが戻り値を返すとも言います。

 

まあとにかく書いてみますね。

 

def nemeless(a,b)

  return a+b

end

 

このreturn a+b の部分が戻り値として呼び出し元に返される。

 

def nemeless(a,b)

return a+b

end

 

sum = nemeless(15,37)

puts sum

 

これを実行すると

f:id:tiroru17:20170616014414p:plain

 

計算された値を返してくれています。

 

return文が実行されるとメソッド内の処理は終了します。

なおreturnは省略可能です。

省略された場合はメソッド内の最後の値が戻り値となる。

 

return文はメソッド内のどこでも使えます。

 

if文を使うような条件式をreturnするとその条件式の結果として得られる

真偽値(trueまたはfalse)を返すことができます。

真偽値を返すメソッドはメソッド名の末尾に?をつける慣習があります。

 

def nameless?(a)

  return a < 10

end

 

puts nameless?(15)

 

例えばこれなら

f:id:tiroru17:20170616030059p:plain

 

if文を使う時はreturnは条件によって複数必要になりますが、

当然複数使えます。条件に当てはまるreturnを返します。

 

キーワード引数というものもあります。

なにが何の引数なのかわかりにくくなったら指定する方法です

書いて説明します。

 

def user(name:,sex:,age:,job:)
puts "ユーザーネーム#{name}","性別#{sex}","年齢#{age}","職種#{job}"
end
user(name:"田中",sex:"女性",age:10,job:"小学生")

 

実行すると

f:id:tiroru17:20170616045435p:plain

 

コロン(:)を上記の文のように使います。

説明するより見たほうが早いでしょう。

 

仮引数にデフォルトの値を入れる場合は

(name: "名無しの権兵衛", 略~~~~~~)

こんな感じです

 

定義にない引数名を用いるとエラーになります。

エラーにせずにキーワード引数を使いたい場合は

**変数名の形式で受け取る引数を作っておきましょう。

 

def math(a:,b:,**c)
[a+b,c]
end
p math(a:3,b:5,d:2,e:7)

 

こんな風に書くと

実行すると

f:id:tiroru17:20170703162944p:plain

 

こんな感じ

キーワード引数と通常の引数は組み合わせても使えます。

 

キーワード引数にハッシュを渡すこともできます。

def a(x: 0,y: 0,z: 0)

これに

b = {x: 1,y: 2,z: 3}

a(b)

こんな風に渡せるってことです。

 

def a(x,y,z)

同様に配列をつくって渡す場合

b = [5,10]

こんな風に

a(1,*b)

アスタリスクを付けるのが特徴。

 

ハッシュを普通に渡すときは

 

def hoge(a)

a

end

 

p hoge({"a" =>1,"e"=>5})

ハッシュの書き方はなんでもいいですが

形としてはこんな感じ

 

実行するとこんな感じ

f:id:tiroru17:20170703165427p:plain

 

次の記事です

tiroru17proguram.hatenablog.com