15
13

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 5 years have passed since last update.

【挫折する前に】 Ruby 引数がイマイチわからない人へ

Last updated at Posted at 2018-11-06

プログラミング初心者がまず初めにつまづくのが引数ではないでしょうか。
「引数とはメソッドに渡す情報のことで…」なんて言われても最初はピンとこない人も多いと思います。
今回はそんな引数をわかりやすく記事にまとめてみました。
かなり色々なことを省略していますが、引数の概念がわかってもらえたらなと思います。

###この記事が参考になりそうな人

  • 「引数がわからなくて挫折しそう!」という初心者の方
  • 「わかりそうだけどイマイチわからない」という方

##引数とは
一応あらためて教科書的に説明をしておくと、引数とは
メソッドの値をメソッドの外に渡す仕組みのことです。
ん〜、やはりこの説明では???なので解説していきます。

##そもそも、なぜ引数を使う必要があるのか?
一言でいうと、なんども同じプログラムを書く手間が減るからです。
もし引数を使わないと、同じメソッドを何度も定義したりしなくてはいけないので、手間や時間もかかりますし、コードの可読性(見易さ)が悪くなります。

この記事では難しい説明は極力省いた方がいいと思うので、今の所はひとまず
「引数を使う事でプログラミングが楽になる」
というイメージでいいんじゃないかと思います。

##実際に引数を使ってみる
では、実際に引数がどのような役割で、どのように楽になるかをみていきます。
例えば以下のような足し算をするメソッド「tashizan」を作ってみます。

sample.rb
def tashizan
10 + 10
end
puts tashizan
=>20

10 + 10という計算をするメソッドを定義し、20という値を出力できました。

これで完結するプログラムであれば上記のままでも問題ないのですが、例えば同じ要領で20 + 20 , 30 + 30・・・という計算をしたい場合、また1からメソッドを作って書くのは面倒ですよね?
そこで引数の登場です。
「hikisu」という名前で引数を使ってみたいと思います。
※今回はメソッド名・引数名を理解しやすいようにローマ字表記にしていますが、通常は英語かつ、他の人がみてもわかりやすい名前にするのが一般的です。

sample.rb
def tashizan(hikisu)
hikisu + hikisu
end
puts tashizan(hikisu)

さて、メソッドと引数が書けました。
しかし、これでは数字がどこにも入っていないため計算ができませんよね?
そこで一番下に記述した**puts tashizan(hikisu)(hikisu)**のなかに数値10を入れてみます。

sample.rb
def tashizan(hikisu)
hikisu + hikisu
end
puts tashizan(10)
=>20

無事計算できてますね。先ほどと同様、20という結果が得られました。

さて、ここからが引数を使うメリットです。
別の数値を引数として渡してあげると複数の出力を得ることができます。

sample.rb
def tashizan(hikisu)
hikisu + hikisu
end
puts tashizan(10)
puts tashizan(20)
puts tashizan(30)

=>20
=>40
=>60

メソッドを新しく定義することなく、引数の数値を変えるだけで10+10,20+20,30+30の結果が出力できました。
かなり楽になったと思いませんか?もっと複雑なメソッドであればより便利さを実感できます。

##少し応用してみる
前項の例では同じ数字の足し算しかできませんでした。
では、違う数字の足し算をするにはどうすればいいか?
簡単です。その場合は引数を増やせば対応できます。

sample.rb
def tashizan(hikisu, hikisu2)
hikisu + hikisu2
end
puts tashizan(10, 20)
=>30

「hikisu2」という引数を追加し、値を20にしました。
10+20で30という結果が得られています。
このように引数が複数ある場合、左から第一引数・第二引数と数えます。

##まとめ

  • 引数とは・・・メソッドの値をメソッドの外に渡す仕組みのこと。
  • メリット・・・なんども同じプログラムを書く手間が減る。
  • 複数の値を扱うには引数を増やす。

いかがでしたでしょうか?
引数を使う意味や便利さが少しはわかっていただけたでしょうか?
今回はわかりやすさを重視したので、色々な部分を省きました。
実際は今日やった部分に対して、実引数、仮引数、戻り値などという名前が付いますが、それはまた別の記事で書いていますので、興味のある方は[【挫折する前に】Ruby 引数がイマイチわからない人へ 発展編]
(https://qiita.com/yossy_sa/items/536913fd58f90d6811f7) をお読みください。

15
13
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
15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?