【月間10万PV達成】ブログの作り方を無料公開中!

関数における引数とは?戻り値との違いや配列の渡し方を覚えよう!

関数の引数とは

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

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

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

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

便利に関数を使えるって言われても、想像できないよね…

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

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

関数の理解でモヤモヤしている方は、さきにこちらの記事を読むとスムーズに理解できます!

関数とはプログラミングの関数(function)とは?定義もわかりやすく説明!

ここからはイラストと実際のコードを使って、わかりやすく説明するよ!

関数における引数(ひきすう)とは

関数の仕組み

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

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

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

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

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

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

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

実引数と仮引数

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

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

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

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

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

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

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

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

明確に伝えたいときは、「実引数」「仮引数」を使おうね!
初心者はRuby【プログラミング初心者】最初の言語はRubyがおすすめ!【未経験者】

引数の使い方

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

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

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

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

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

  1. 引数(仮引数)「price」に、税率「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」と税込価格を出力できるのです。

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

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

引数と戻り値(返り値)の違いは?

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

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

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

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

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

「引数」と「戻り値」じゃ、役割がぜんぜん違うね!
関数の戻り値とは関数の「戻り値(返り値)」とは?C言語とRubyを比較【return】

まとめ

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

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

プログラミングしていくなかで、自然と引数を使えるようになっていくので、いまはなんとなく理解できれば大丈夫。

この調子で頑張って、エンジニアを目指してください!

またね、キツネ(@kitaaaa_kitsune)でした!

【プログラミング入門】初心者向けおすすめ学習ステップ【プログラミング入門】おすすめの基礎知識やプログラムの基本
テキストのコピーはできません。