Kotlin Koans 19 Invoke

Invoke (Playground)


Objects with invoke() method can be invoked as a function.

You can add invoke extension for any class, but it's better not to overuse it:

invoke() メソッドを持つオブジェクトは、関数として呼び出すことができます。

どのクラスにも invoke 拡張は追加することができますが、あまり使いすぎないことをおすすめします。

fun Int.invoke() { println(this) }

1() //huh?..

Implement the function Invokable.invoke() so it would count a number of invocations.

関数 Invokable.invoke() を実装し、関数の呼び出し回数をカウントするようにしてください。


class Invokable {
var numberOfInvocations: Int = 0
private set
operator fun invoke(): Invokable {
return this

fun invokeTwice(invokable: Invokable) = invokable()()

← Blog