KotlinのInt.timesがムカついたので拡張関数作った。

KotlinにもInt.timesがあって簡単にループできるんだけど、こいつカウンターがない…。
IntelliJからメソッドジャンプしてみたら、以下のようになっていた。

package kotlin

public inline fun Int.times(body : () -> Unit) {
    var count = this;
    while (count > 0) {
       body()
       count--
    }
}

うん、まぁわかる。わかるけれどカウンター付けてよ!
ということで、自分で作った。拡張関数は便利すなぁ…。

public inline fun Int.times(body : (index:Int) -> Unit) {
    var index = 0
    while (index < this) {
        body(index)
        index++
    }
}

使い方はこうです。

10.times { index ->
    println(index)
}

こっちを採用してほしいですね。


タグ Kotlin | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です