Kotlin

Kotlinの関数は第1級オブジェクト - Kotlin入門

2021年2月28日

Kotlin では関数も、数値や文字列などの他の値のように扱えます。
変数に関数を代入したり、関数の引数として関数を与えたり、関数の実行結果として関数を返せます。

ポイント

このような性質を持つオブジェクトを、「第一級オブジェクト」と呼びます。

 

関数が第一級オブジェクトとして扱われることで、便利な使い方ができます。
ここでは、その便利な使い方についてまとめます。

参考

Kotlin 言語の関数については「関数定義と使い方」にまとめています。

 

関数型

Kotlin の関数はオブジェクトですので、当然「型」があります。
それは、関数型で、以下のように記述します。

 フォーマット
(1番目の引数の型, 2番目の引数の型, ...) -> 返り値の型


2個のコロン「::」で関数を指定することで、第一級オブジェクトの関数を指すことができます。

 

高階関数

関数を引数として受け取ったり、返り値として返すような関数のことを高階関数と呼びます。
高階関数によって、関数の抽象化が可能になります。

最初に大文字が出現する位置を返す getFirstUpperCase を例に見ていきましょう。

再帰呼び出しのみで書く

tailrec は、再帰呼び出しをした際にスタックを消費しないように最適化する機能です。

 

高階関数を使って書く

 

「ある条件の最初の文字を探す」という機能を切り出すことができました。
条件を predicate で指定しています。

このように抽象化することで、他の機能などを簡単に実装することが出来るようになります。

 

このように、高階関数を使うことで使いまわしが容易になり、すごくスッキリしたコードになります。

 

こちらの記事もよく読まれています

  • この記事を書いた人
  • 最新記事
SANACHAN

SANACHAN

「生涯一エンジニア」を掲げ、大手グローバル企業でSE/PGとして8年勤め、キャリアアップ転職した現役のエンジニアです。世にあるメジャーな全プログラム言語(コボル除く)を自由に扱えます。一児の父。自分のため、家族のため、日々勉強してます。システムエンジニア、プログラミングに関する情報を蓄積している雑記帳です。

-Kotlin
-, ,