LoginSignup
0
0

More than 1 year has passed since last update.

【Ruby】プログラミングスクールに入って3ヵ月間、引数が分からなかった。

Posted at

引数とは?

こんにちは。

プログラミングスクールに入ったはいいが、引数が全く分からないまま
3ヵ月くらいがすぎてしまってましたが、ようやく実態がつかめてきました(笑)

おそすぎだろ!って話になりますが、
引数でわけわからなくなる人多いのではないでしょうか?

※ ここだけの話プログラミングスクールではあまり引数のことは
  カリキュラムに説明がなかったためそれが理由です。ガーン

よくわからない引数という物体を分かりやすく解説していきます!

引数とはなんぞや?

引数というのは、簡単にいうとバケツや箱に入った中身と考えて下さい。

引数があることで、次の処理にバケツや箱の中身を引き渡して
その受け取った中身を基にメソッドの処理ができるようになります。

引数がわからない時は???という状態でしたが
理解できてくるとめっちゃ便利やん!と目からうろこ状態です。(笑)

それでは、どんなもんかみていきましょう!
Fizzbuzzという有名な

php/hikisu.rb

def fizzbuzz(number)
 if number == 1
    'fuzzbuzz'
 end
end

puts fizzbuzz(1)

超簡単なこんなプログラムがあったとしましょう。
最初にfizzbuzz(1)の中にある1という文字が引数です。
()の中に数字がはいっていますよね。

これが次は

def fizzbuzz(number)

メソッドの名前に書いたnumberという箱の中に移ります。
ここで私が困惑したポイントになるのですが
fizzbuzz(number)というnumberの名前はなんでもOKなんです。

例えば、fizzbuzz(unko)こんな名前でもOK(笑)
しかし次の number == 1となっている numberはfizzbuzz(number)と一致させる必要があります。

そうしないと、どこから値を引っ張てくるのかrailsが判断できません。

def fizzbuzz(unko)
if unko== 1
'fuzzbuzz'
end
end

fizzbuzz(unko)と条件分岐が始まるif unko == 1 のunkoが
一緒であればokです。

もっと詳しく説明をすると...。

puts fizzbuzz(1)は本引数といいます。
この本引数は中の引数(値)を次のメソッドに引き渡す式になり
メソッド名が仮引数と一致していれば中の引数はなんでもOKです。

したがって、def fizzbuzz(number)は仮引数といいます
仮引数は本引数から受け取った値をメソッド内にコピペして
渡していくイメージが分かりやすいと思います。

numberと書いてある仮引数の名前はぶっちゃけなんでもOK。
受け取るためのただの箱なのでふさわしい名前をつけてあげます。

ただし、仮引数でつけた名前はメソッドないで使用したいときは
仮引数の名前を同じ名前で使用する必要があります。
イメージとしては仮引数の名前をコピペしていって
メソッドの中で使用していく感じです。

まとめ

いかがでしたでしょうか?
引数についてわかったでしょうか?

まだ、よくわからない!という方はもっと参考になる記事もあるので
よければそちらもみてくださいね!

・引数は次に値を渡すバケツの中身
・仮引数の名前はなんでもOK

参考:https://qiita.com/yossy_sa/items/536913fd58f90d6811f7

それでは、またお会いしましょう!
チャオ^^

0
0
1

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