9-1. 標準ライブラリ関数、ビルトイン関数
概要
Kotlin は、開発を効率化し、コードの可読性を向上させるための豊富な標準ライブラリ関数とビルトイン関数を備えています。
これらの関数は、 コレクション操作、 文字列処理、 数値計算など、 様々なタスクを簡潔に実行するのに役立ちます。
標準ライブラリ関数とビルトイン関数の違い
標準ライブラリ関数は、Kotlin の標準ライブラリに含まれる関数です。これらは特定のクラスやオブジェクトに関連付けられていません。
一方、 ビルトイン関数は、Kotlin 言語自体に組み込まれた関数であり、任意のコンテキストで使用できます。
これらは、多数あるので、代表的な関数/キーワードのみをいくつか記載します。
代表的な関数/キーワード | 概要 | 種類 |
---|---|---|
filter | コレクションから条件に合致する要素のみを抽出 | 標準ライブラリ関数 |
map | コレクションの各要素に関数を適用し、新しいコレクションを作成 | 標準ライブラリ関数 |
forEach | コレクションの各要素に対して指定した処理を実行 | 標準ライブラリ関数 |
reduce | コレクションの要素を左から右へ順に処理し、単一の値に集約 | 標準ライブラリ関数 |
sorted | コレクションをソートして新しいコレクションを作成 | 標準ライブラリ関数 |
any | コレクションに条件に合致する要素が少なくとも1つ存在するかどうかを判定 | 標準ライブラリ関数 |
all | コレクションのすべての要素が条件に合致するかどうかを判定 | 標準ライブラリ関数 |
substring | 文字列から指定した範囲の部分文字列を抽出 | 標準ライブラリ関数 |
replace | 文字列内の指定した部分を別の文字列に置換 | 標準ライブラリ関数 |
split | 文字列を指定した区切り文字で分割してリストを作成 | 標準ライブラリ関数 |
trim | 文字列の先頭と末尾の空白文字を削除 | 標準ライブラリ関数 |
startsWith | 文字列が指定した文字列で始まるかどうかを判定 | 標準ライブラリ関数 |
endsWith | 文字列が指定した文字列で終わるかどうかを判定 | 標準ライブラリ関数 |
abs | 数値の絶対値を返す | 標準ライブラリ関数 |
maxOf | 複数の数値の中から最大値を返す | 標準ライブラリ関数 |
minOf | 複数の数値の中から最小値を返す | 標準ライブラリ関数 |
round | 数値を最も近い整数に丸める | 標準ライブラリ関数 |
ceil | 数値以上の最小の整数を返す | 標準ライブラリ関数 |
floor | 数値以下の最大の整数を返す | 標準ライブラリ関数 |
toInt | 数値を整数に変換する | 標準ライブラリ関数 |
toString | 任意のオブジェクトを文字列に変換する | 標準ライブラリ関数 |
toDouble | 数値を倍精度浮動小数点数に変換する | 標準ライブラリ関数 |
toList | 任意のシーケンスをリストに変換する | 標準ライブラリ関数 |
if | 条件分岐を実行する | ビルトイン |
when | 複数の条件分岐を実行する | ビルトイン |
for | 繰り返し処理を実行する | ビルトイン |
while | 条件が真である間、繰り返し処理を実行する | ビルトイン |
try-catch | 例外処理を実行する | ビルトイン |
println | 指定した値を標準出力に出力する | ビルトイン関数 |
readLine | 標準入力から1行読み込む | ビルトイン関数 |
SimpleDateFormat | 日付や時刻をフォーマットする | 標準ライブラリ関数 |
Thread | 新しいスレッドを作成して実行する | 標準ライブラリ関数 |
コレクション操作
filter
filter : コレクションから条件に合致する要素のみを抽出して新しいコレクションを作成します。
val numbers = listOf(1, 2, 3, 4, 5, 6) val evenNumbers = numbers.filter { it % 2 == 0 } // [2, 4, 6]
map
map : コレクションの各要素に関数を適用し、新しいコレクションを作成します。
val numbers = listOf(1, 2, 3) val squaredNumbers = numbers.map { it * it } // [1, 4, 9]
forEach
forEach : コレクションの各要素に対して指定した処理を実行します。
val names = listOf("Alice", "Bob", "Charlie") names.forEach { println("Hello, $it!") }
reduce
reduce (標準ライブラリ関数) コレクションの要素を左から右へ順に処理し、 単一の値に集約します。
val numbers = listOf(1, 2, 3, 4, 5) val sum = numbers.reduce { acc, num -> acc + num } // 15
sorted
sorted : コレクションをソートして新しいコレクションを作成します。
val numbers = listOf(5, 2, 8, 1, 3) val sortedNumbers = numbers.sorted() // [1, 2, 3, 5, 8]
any
any : コレクションに条件に合致する要素が少なくとも1つ存在するかどうかを判定します。
val numbers = listOf(1, 2, 3, 4, 5) val hasEvenNumber = numbers.any { it % 2 == 0 } // true
all
all : コレクションのすべての要素が条件に合致するかどうかを判定します。
val numbers = listOf(2, 4, 6, 8) val allEven = numbers.all { it % 2 == 0 } // true
文字列処理
substring
substring : 文字列から指定した範囲の部分文字列を抽出します。
val text = "Hello, world!" val subText = text.substring(7, 12) // "world"
replace
replace : 文字列内の指定した部分を別の文字列に置換します。
val text = "Hello, world!" val newText = text.replace("world", "Kotlin") // "Hello, Kotlin!"
split
split : 文字列を指定した区切り文字で分割してリストを作成します。
val text = "apple,banana,orange" val fruits = text.split(",") // ["apple", "banana", "orange"]
trim
trim : 文字列の先頭と末尾の空白文字を削除します。
val text = " Hello, world! " val trimmedText = text.trim() // "Hello, world!"
startsWith
startsWith : 文字列が指定した文字列で始まるかどうかを判定します。
val text = "Hello, world!" val startsWithHello = text.startsWith("Hello") // true
endsWith
endsWith : 文字列が指定した文字列で終わるかどうかを判定します。
val text = "Hello, world!" val endsWithWorld = text.endsWith("world!") // true
数値計算
abs
abs : 数値の絶対値を返します。
val number = -10 val absoluteValue = number.abs() // 10
maxOf
maxOf : 複数の数値の中から最大値を返します。
val max = maxOf(10, 5, 20) // 20
minOf
minOf : 複数の数値の中から最小値を返します。
val min = minOf(10, 5, 20) // 5
round
round : 数値を最も近い整数に丸めます。
val number = 3.14159 val roundedNumber = number.roundToInt() // 3
ceil
Ceil : 数値以上の最小の整数を返します。
val number =3.14159 val ceilNumber = ceil(number) // 4.0
floor
floor : 数値以下の最大の整数を返します。
val number = 3.14159 val floorNumber = floor(number) // 3.0
型変換
toInt
toInt : 数値を整数に変換します。
val number = 3.14159 valintNumber = number.toInt() // 3
toString
toString : 任意のオブジェクトを文字列に変換します。
val number = 123 val text = number.toString() // "123"
toDouble
toDouble : 数値を倍精度浮動小数点数に変換します。
val number = 123 val doubleNumber = number.toDouble() // 123.0
toList
toList : 任意のシーケンスをリストに変換します。
val numbers = 1..5 val numberList = numbers.toList() // [1, 2, 3, 4, 5]
制御フロー
if
if : 条件分岐を実行します。
val number = 10 if (number > 0) { println("正の数です") } else if (number < 0) { println("負の数です") } else { println("ゼロです") }
when
when : 複数の条件分岐を実行します。
val number = 2 when (number) { 1 -> println("1です") 2 -> println("2です") else -> println("その他です") }
for
for : 繰り返し処理を実行します。
for (i in 1..5) { println(i) }
while
while : 条件が真である間、繰り返し処理を実行します。
var i = 1 while (i <= 5) { println(i) i++ }
try-catch
try-catch : 例外処理を実行します。
try { // 例外が発生する可能性のある処理 } catch (e: Exception) { // 例外が発生した場合の処理 }
その他
println
println : 指定した値を標準出力に出力します。
println("Hello, world!")
readLine
readLine : 標準入力から1行読み込みます。
val input = readLine()
SimpleDateFormat
SimpleDateFormat : 日付や時刻をフォーマットします。
val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") val dateString = format.format(Date())
Thread
Thread : 新しいスレッドを作成して実行します。
Thread { println("新しいスレッドで実行中") }.start()
公式ドキュメント
より詳細な情報については、 Kotlin 公式ドキュメント を参照してください。