【リニューアル記念】未経験からブロガーへのSTEPを続々更新!

関数における引数とは?戻り値との違いをしっかり理解しよう!

関数の引数とは

関数を勉強していると必ず出てくるのが「引数(ひきすう)」です。

この引数とは、簡単にいうと「関数に渡す値」のことです。

ですが、なぜ関数に引数を渡す必要があるのでしょうか?

それは、関数に引数を渡すことでより便利に関数を使うことができるからです。

キツネ

便利に関数を使うことができるって言われても想像できないよね…

これは実際に見てもらったほうが早いので、具体的にどのような使い方をするのか詳しく見ていきましょう!

また、関数を理解する上で必要となる「戻り値(もどりち)」との違いもあわせて紹介します。

関数の理解でモヤモヤしている方は「プログラミングの関数とは?わかりやすく簡単に解説!」を先に読むとスムーズに理解できます!

引数(ひきすう)とは

関数の仕組み

引数とは、関数に渡す「変数」や「値」のことを指します。

関数を「自動販売機」に例えるとしたら、引数は「お金」に例えることができます。

  1. 自動販売機にお金を入れる
  2. 自動販売機はお金を受け取る
  3. 金額に見合ったジュースが買える

これを関数の仕組みで表すと以下のようになります。

  1. 関数に引数を渡す
  2. 関数は引数を受け取る
  3. 引数ごとに結果を出力する

引数には必ず「渡す側」と「受け取る側」が存在します。

この渡す側の引数を「実引数」、受け取る側の引数を「仮引数」と呼びます。

実引数と仮引数

引数には、大きく分けて2種類あります。

  1. 「関数を呼び出す際に渡す引数」のことを「実引数
  2. 「関数を定義する際に受け取る引数」のことを「仮引数

キツネ

実在する値は「実引数」、仮定する値は「仮引数」って覚えるといいかも!

ただ、実際の現場ではどちらも単に「引数」と呼ばれることのほうが圧倒的に多いです。

たとえば、「引数(実引数)を渡して!」とか「引数(仮引数)を受け取って!」とかですね。

頻繁には使わない用語ですが、名前だけは知っておいたほうがいいので覚えておくようにしましょう。

では、引数についての理解を深めるために、具体的なコードを見ていくことにしましょう!

ここからは、プログラミング言語「Ruby」の関数を例に見ていきます。

引数の使い方

まずは、以下のコードを見てみましょう。

Rubyの関数
# 「price」が仮引数
def calculation(price)
  total_price = price * 1.08
  return total_price
end

# 「100」が実引数
calculation(100)

value = 200
# 「value」が実引数
calculation(value)

上のコードでやっていることを簡単にまとめます。

  1. 引数(仮引数)に税率「1.08」を乗算した結果を出力する関数「calculation」を定義
  2. 関数「calculation」の引数(実引数)に「100」を指定して呼び出す
  3. 関数「calculation」の引数(実引数)に「value」を指定して呼び出す

「calculation」関数は、受け取った引数(仮引数)に税率「1.08」を乗算した「税込価格」を出力する関数です。

1回目は、関数「calculation」を呼び出す際に「100」という引数(実引数)を渡して実行しています。

2回目は、変数「value」に「200」という値を代入し、「calculation」の引数に「value」を渡して実行しています。

それぞれの実行結果は、「108」と「216」になります。

そして、これらのコードからもわかるように、引数は「値」でも「変数」でも構いません。

引数に配列を渡す

関数に渡せる引数の数は1つとは限りません。

もっと具体的にいうと

「関数呼び出し時の実引数の数」=「定義されている関数の仮引数の数」

になります。

実際にどのように引数を受け渡すのか、具体例を見てみましょう。

Rubyの関数
# 「price_1」が第一引数、「price_2」が第二引数
def calculation(price_1, price_2)
  total_price = price_1 * price_2 * 1.08
  return total_price
end

# 「100」が第一引数、「200」が第二引数
total_price = calculation(100, 200)

このように「第一引数, 第二引数」と、引数を「,(カンマ)」で区切って書くことで引数の数を増やすことができます。

ですが、引数の数が増え続ければコードを書くのが大変ですし、何より長くなってしまいとても見づらいです。

実は複数の値を渡す方法として「配列で引数を渡す」という方法があります。

さきほどの例を配列を使って書き換えたものがこちらです。

Rubyの関数
# 「prices」が配列の引数
def calculation(prices)
  total_price = prices[0] * prices[1] * 1.08
  return total_price
end

# 「100」が第一引数「200」が第二引数
total_price = calculation([100, 200])

引数が1つだとしても、配列を渡せば複数の値を関数の中で使うことができます。

「引数を増やす方法」と「配列を引数にする方法」がありますが、どちらが正しいとかではなく、場合によって使い分けることが大切です。

キツネ

引数の使い分けは、実際にプログラミングしながら覚えていこう!

引数の初期値

関数の引数には「初期値」を設定できます。

初期値とは、実引数を指定せずに関数を呼び出した場合、仮引数にデフォルトで代入される値のことです。

文章で説明すると難しく感じてしまうので、これは見てもらったほうが早いかもしれません。

Rubyの関数
# 「price」の初期値を「100」に設定
def calculation(price = 100)
  total_price = price * 1.08
  return total_price
end

# 引数がない場合
calculation()

# 引数に「200」を設定した場合
calculation(200)

引数を指定せずに関数を呼び出せば、「100」が「price」に代入され、結果として「108」が出力されます。

引数に「200」を指定して関数を呼び出せば、「200」が「price」に代入され、結果として「216」が出力されます。

引数を使うメリット

これまでのプログラムを読んできて、「引数のメリット」について気付いた方もいるのではないでしょうか。

ここでもう一度、最初に紹介したコードを見てみましょう。

Rubyの関数
def calculation(price)
  total_price = price * 1.08
  return total_price
end

calculation(100)

value = 200
calculation(value)

これを見ただけでは引数のメリットがわかりづらいと思うので、引数のない関数についても確認しましょう。

Rubyの関数(引数なし)
# 引数がなくても関数は定義できる
def calculation()
  total_price = 100 * 1.08
  return total_price
end

# 引数がなくても関数を呼び出せる
calculation()

このように、引数なしでも関数を定義したり呼び出したりすることが可能です。

ですが、この関数では「100」という値を変えることができないため、「200」で計算したい場合はもう1つ関数を作らなければなりません。

このように計算したい値が増えてくると、同じ処理をしたいだけなのに似たような関数をたくさん作る必要が出てきてしまい、とっても非効率です。

ですが、最初に紹介した引数のある「calculation」関数のように、好きな引数を渡せる関数を1つ定義しておくだけで、渡された引数ごとの計算結果を簡単に出力できます。

つまり、引数の値を「100」「200」と変えるだけで、「108」「216」と税込価格を出力できるのです。

引数のメリットとは「関数を使いまわせるようにする」ということなんですね。

キツネ

もっと複雑な処理なら、引数のメリットをさらに感じられるよ!

引数と戻り値の違いは?

さいごに、「引数」と似ていて紛らわしい「戻り値(もどりち)」についても確認しておきましょう。

関数を「自動販売機」に例えると引数は「お金」でしたね。

では「戻り値」はというと、自動販売機から出てくる「ジュース」 みたいなものです。

プログラミング用語でしっかり説明すると、「戻り値」とは「関数が出力する値」のことなのです。

ちなみに、「返り値(かえりち)」という用語もよく出てきますが、これは「戻り値」とまったく同じ意味です。

まとめ

  • 引数(ひきすう)とは、関数に渡す「値」や「変数」のこと
  • 引数には、「実引数」と「仮引数」の2種類がある
  • 「関数を呼び出す際に渡す引数」のことを「実引数」という
  • 「関数を定義する際に受け取る引数」のことを「仮引数」という
  • 複数の引数を関数に渡すことができる
  • 引数を配列にすることで、複数の値を渡すことができる
  • 引数には初期値を設定できる
  • 引数のない関数もある
  • 引数は「関数を使いまわすために必要」な存在
  • 戻り値とは、関数が出力する「値」のこと

まとめてみると思ったよりたくさん出てきましたが、すべて覚えようとする必要はありません。

プログラミングしていく中で、自然と引数を使えるようになっていることがほとんどなので、今はなんとなく理解できれば大丈夫です!

テキストのコピーはできません。