ラムダ式と型推論
Kotlin でラムダ式と型推論を使用するサンプルプログラムです。 このコードでは、ラムダ式を使用して2つの整数を受け取り、それらを加算する関数を作成して呼び出しています。 ラムダ式と比較するために、同じ機能を持つ通常メソッドも記載しています。 また、Kotlinは型推論をサポートしているため、型アノテーションを省略してもコンパイラは正しい型を推論します。
Main.kt
fun main(args: Array<String>) {
// ラムダ式を使用した関数
val sample1A: (Int, Int) -> Int = { x, y -> x + y }
// 通常メソッドで記述した場合
fun sample1B(x: Int, y: Int): Int {
return x + y
}
// ラムダ式を呼び出す
val result1A = sample1A(5, 3)
println("ラムダ式: 5 + 3 = $result1A")
// 通常メソッドを呼び出す
val result1B = sample1B(5, 3)
println("通常メソッド: 5 + 3 = $result1B")
// 型推論による型アノテーション(: (Int, Int))を省略する場合
val sample2A = { x: Int, y: Int -> x * y }
// 型アノテーション(: (Int, Int))を省略しない場合
val sample2B: (Int, Int) -> Int = { x, y -> x * y }
// 関数を呼び出す
val test2A = sample2A(4, 6)
val test2B = sample2B(4, 6)
println("型アノテーションの省略: 4 * 6 = $test2A")
println("型アノテーションの省略なし: 4 * 6 = $test2B")
}
処理結果は次の通りです。
ラムダ式: 5 + 3 = 8
通常メソッド: 5 + 3 = 8
型アノテーションの省略: 4 * 6 = 24
型アノテーションの省略なし: 4 * 6 = 24
型アノテーションを省略し、Kotlin の型推論を使用するかはプログラマーの判断に委ねられますが、 個人的には型アノテーションを含めることでコードの可読性を向上させる方が優しいソースだと思います。 今回は簡単なサンプルを掲載しましたが、ラムダ式と型推論は使いこなせそうですか?
あまりピンとこなかった人は自分でサンプルを書いてみてください。 ラムダ式は他の言語でも見かけることが増えたので知っておいて損はないかと思います。