fkm blog

software開発に関することを書いていきます

Kotlin Standard Libraryを読む(5)

まだまだ String の拡張関数いきますよ。

all

1文字ずつ調べていって全部 true だったら true となる関数。

public inline fun CharSequence.all(predicate: (Char) -> Boolean): Boolean {
    for (element in this) if (!predicate(element)) return false
    return true
}

例えば、文字列が aA のみで構成されているかのチェックはこんな感じ。

val a = "aaAaaaaA"
a.all { it == 'a' || it == 'A'}
=> true

any

all の逆で、1つでも true を返せば true を返す。実装もそのまんまですな。

public inline fun CharSequence.any(predicate: (Char) -> Boolean): Boolean {
    for (element in this) if (predicate(element)) return true
    return false
}

使うときはこんな感じ

val a = "....F...."
a.any { it == 'F' }
=> true