今回は関数という機能について説明していきます。関数はユーザー定義関数と、定義済み関数の2種類あります。ユーザー定義関数は、基本的にはコードの可読性を上げるための機能なので、ユーザー定義関数を利用しなくても実現したい機能は実現することは可能です。しかし、このユーザー定義関数という機能を利用することによってコードを書く人間も読む人間も、修正していく人間も楽に扱うことができるようになります。実際にコードを書く人間にとっては必須の知識となるのでしっかり理解していきましょう。

関数とは

3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2019年07月09日

今回は関数という機能について説明していきます。

関数はユーザー定義関数と、定義済み関数の2種類あります。

ユーザー定義関数は、基本的にはコードの可読性を上げるための機能なので、ユーザー定義関数を利用しなくても実現したい機能は実現することは可能です。

しかし、このユーザー定義関数という機能を利用することによってコードを書く人間も読む人間も、修正していく人間も楽に扱うことができるようになります。実際にコードを書く人間にとっては必須の知識となるのでしっかり理解していきましょう。

関数とは

関数というと、数学で利用するy=f(x)というものを思い浮かべる方もいらっしゃいますが、プログラミングでは特定の処理をまとめ、まとまった処理の結果を返したりする機能があります。

特定のデータを関数に渡し、渡ったデータを元に一定の処理を行い、結果を返却するという点では数学の関数と似ていますが、プログラミングでは、データを渡さずに決まった処理を行い、結果も返さない関数も存在し、そのような関数を作成することもできます。

そのため、プログラミングでの関数は、再利用可能な処理を分離し、何度も自由に利用できる機能として使用されます。

定義済み関数とは

定義済み関数とは、プログラミング言語にすでに実装されている関数のことです。呼び出すことによって決まった処理を行い、決まった値が返却されます。

プログラミング言語によってたくさんの定義済み関数が存在するので、インターネットで調べながら便利な関数を利用することができます。詳しくはプログラミング言語ごとの記事でご紹介していきます。

ユーザー定義関数とは

定義済み関数と違い、自分の作成しているコード内で一定の処理を行うものなどを自分で関数化して、いろいろな場所で利用することができます。

ユーザー定義関数は作成しなくても実現したい機能を実現することは可能ですが、一定の処理をまとめて、構造化していくことが、いいプログラマへの第一歩となります。

ユーザー定義関数を利用する利点

ある一定の処理をまとめる機能がユーザー定義関数にはあるとご説明しました。

まとめる機能が存在するとどのような利点があると思いますか?

何十行もあるコードで、同じ処理(10行程度のコード)を行う部分が5つあったとします。
5つすべてでコピー&ペーストで同じコードを複数書いた場合、困ることがいくつか存在します。1

  • いざ同じ処理の部分を修正すると、5つの場所すべて修正しなければならない
    10行程度でも5つすべてを同様に修正するのは地味に集中力を削られます。
    忘れて4つだけ修正してしまって、5つすべて直っていないことに気づけない可能性もあります。
  • そもそものコード量が増えてしまう
    コード量が増えることは、可読性が悪くなることに直結します。しばらくしてから自分が書いたコードでも見づらく感じます。
  • 新たに同じ処理を書く必要がでる可能性がある
    同様の処理部分が新たにできた場合、再び同じコードを書かなければいけません。コピー&ペースト自体ナンセンスとなります。

このようなデメリットが存在します。関数として同じ処理をまとめるだけで、修正するときには関数化した処理部分1つを修正すると、同じ処理を行う呼び出し部分は呼び出しているだけなので、そのまま変更は必要ありません。

実際の処理するコードは関数化されていてコード量が節約、可読性も向上します。

新たに同様の処理を使用したい箇所が追加された場合も、関数呼び出しを書くだけですぐに利用することができます。

まとめ

関数の概要について説明していきました。実際のコード例がないのでイメージしづらい部分もあるかと思いますが、各プログラミング言語の関数についての説明で利用方法や書式も書いていきますので、まずは関数を利用することのメリット、理解などをしていただければと思います。

最後に、関数名はきちんと付けましょう。関数はある機能をまとめたものです。関数名がしっかりついていないと、どんな機能がある関数なのかわからなくなります。自分が作成した便利な関数も、名前が明確じゃなければ他の人は使いづらい、または使われません。

どんな処理を行う関数なのかを明確に関数名として落とし込んで、なるべく英語名でつけるようにしましょう。

  1. 実際のコードが無いとわからない部分もあるかと思いますが、プログラミング言語では関数の書式が様々あるので、コード例は今回は除外します。 ↩︎