関数

Kotlinにおける「関数」は、再利用可能な処理の単位を定義するための基本的な構文要素であり、Kotlinの関数型プログラミング特性にも深く関係しています。以下に、Kotlinの関数の基本的な定義方法から、より高度な使い方まで詳しく説明します。


1. 基本構文

Kotlinで関数を定義するには、fun キーワードを使用します。

kotlin
fun greet(name: String): String { return "Hello, $name" }
  • fun:関数定義を示すキーワード。

  • greet:関数名。

  • (name: String):引数。ここではString型のnameを1つ取る。

  • : String:戻り値の型。

  • return:値を返す。


2. 式形式の関数(式関数)

戻り値が1つの式である場合、ブロックを省略して次のように書けます。

kotlin
fun square(x: Int): Int = x * x

このような簡潔な記法は、関数型スタイルに適しています。


3. 戻り値のない関数(Unit型)

戻り値が不要な関数は、戻り値の型として Unit(Javaのvoidに相当)を使用します。省略も可能です。

kotlin
fun printMessage(message: String): Unit { println(message) } fun showMessage(message: String) { println(message) // Unitは省略可 }

4. デフォルト引数と名前付き引数

Kotlinでは、関数の引数にデフォルト値を指定できます。また、呼び出し時に引数名を明示できます。

kotlin
fun greet(name: String = "Guest") { println("Hello, $name") } greet() // Hello, Guest greet("Masahiro") // Hello, Masahiro
kotlin
fun formatMessage(prefix: String, message: String, suffix: String = ".") { println("$prefix$message$suffix") } formatMessage(message = "Hello", prefix = "[INFO] ") // [INFO] Hello.

5. 可変長引数(vararg)

引数の個数が可変の場合、vararg を使います。

kotlin
fun sumAll(vararg numbers: Int): Int { return numbers.sum() } val total = sumAll(1, 2, 3, 4) // 10

6. 関数の戻り値として関数を返す・関数を引数に取る(高階関数)

Kotlinは関数型言語としての側面を持ち、高階関数(関数を引数や戻り値にできる)をサポートしています。

kotlin
fun operate(x: Int, y: Int, op: (Int, Int) -> Int): Int { return op(x, y) } val result = operate(3, 4) { a, b -> a + b } // 7

7. ローカル関数

関数内に関数を定義できます。スコープを制限したいときに便利です。

kotlin
fun outerFunction() { fun innerFunction() { println("This is inner") } innerFunction() }

まとめ

機能 説明
fun キーワード 関数の定義に使用
戻り値型 : 型名 で指定、不要なら省略も可能
式形式関数 = を使って1行で記述
デフォルト引数 引数名: 型 = デフォルト値
名前付き引数 関数名(引数名 = 値)
可変長引数 (vararg) 任意個数の引数を受け取れる
高階関数 関数を引数または戻り値にできる
ローカル関数 関数の中に関数を定義

関数はKotlinの基本にして非常に柔軟な機能です。今後のラムダ式、コレクション操作、関数型プログラミングの学習にもつながっていきます。

生成日:2025/05/04