0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kotlin Koans やってみた 7

Posted at

Introduction

Lambdas

問題

Kotlin は関数型プログラミングをサポートしています。Kotlin でラムダ式について学びましょう。
ラムダ式を any 関数に渡して、コレクションに偶数が含まれているかどうかを確認できます。
any 関数は条件(述語)を引数として受け取り、少なくとも1つの要素がその条件を満たす場合に true を返します。

解答

fun containsEven(collection: Collection<Int>): Boolean =
    collection.any { it % 2 == 0 }

解説

Kotlin 公式ドキュメント > it: implicit name of a single parameter

it: 単一のパラメーターの暗黙的な名前

ラムダ式でパラメーターが 1 つだけの場合は非常によくあるパターンです。

もしコンパイラーがパラメーターなしでシグネチャを解析できる場合、そのパラメーターを明示的に宣言する必要はなく、-> を省略できます。この場合、パラメーターは it という名前で暗黙的に宣言されます。

ints.filter { it > 0 } // このリテラルは型 '(it: Int) -> Boolean' のラムダ式です

おわりに

パラメーターが 1 つだけの場合に -> を省略できるのは知らなかった!!!
そして、.any() が boolean を返してくれることも知らなかった!!!
Koans を今までスルーしてきてしまったことに後悔している。
先人たちの「公式ドキュメントにあるチュートリアルをまずやる」は正しいと改めて感じる。騙されたと思ってとりあえずやってみようと思う。「ほんまや〜」って某S氏の声が聞こえてきそうだ(笑)


← 前回の記事

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?