fkm blog

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

kotlin

Kotlin Standard Libraryを読む(10)

今回は String の filter シリーズ filter 1文字ずつラムダ式に与えて、 true を返したものだけをくっつける拡張関数。「不適切な名前」の代表格ですな。。 public inline fun String.filter(predicate: (Char) -> Boolean): String { return filterTo(Strin…

Kotlin Standard Libraryを読む(8)

今回は String のコードポイント系。JVM環境でしか使えないみたい。 codePointAt 指定したインデックスのunicodeコードポイントを取ってくる拡張関数。確かこれJavaのStringにもあるよね。 と思ってソース呼んだらまさにそのまんまだった public inline fun …

Kotlin Standard Libraryを読む(7)

今回は String の chunked 系 chunked 文字列を指定した文字数でちぎってリストにする拡張関数。 public fun CharSequence.chunked(size: Int): List<String> { return windowed(size, size, partialWindows = true) } こんな感じ。 val a = "Moke!" a.chunked(2) =></string>…

Kotlin Standard Libraryを読む(6)

今回は associate シリーズ associate 1文字ずつ取り出し、Map を作る拡張関数。 public inline fun <K, V> CharSequence.associate(transform: (Char) -> Pair<K, V>): Map<K, V> { val capacity = mapCapacity(length).coerceAtLeast(16) return associateTo(LinkedHashMap<K, V>(c</k,></k,></k,></k,>…

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 re…

Kotlin Standard Libraryを読む(4)

Stringには拡張関数がめっちゃ生えてる。 String.indices 有効な添字のレンジを返す。 indices は index の複数形。実装はこんな感じになってた。 public val CharSequence.indices: IntRange get() = 0..length - 1 おそらく、 val a = "Moke!" for (i in 0…

Kotlin Standard Libraryを読む(0)

今日は単なる決意表明の日(逃 そろそろKotlinも1.3が出る上、Androidアプリ開発やる上で長い付き合いになりそうなのでKotlin Standard Libraryを読んでいこう。

Kotlinでリストの中身を連結した文字列を作る

Kotlinは1つのことをやるのに、いろんな書き方ができてしまう、困った言語(Goに比べて)ということで今回のテーマは、「リストの中身を連結したい」 基準となるコードはこんな感じ。 fun main(args: Array<String>) { val numbers = (1..10000).map{ Integer.toStri</string>…