基本的な関数定義と呼び出し
基本的な関数定義。
Main.kt
// 引数なし、戻り値なしの関数。値を返さない関数の戻り値はUnit型として扱われる。また、Unit型は省略可能。
// 本来はこうだが、
fun 関数名(): Unit {
// コード
}
// こう書ける
fun 関数名() {
// コード
}
// 引数あり、戻り値ありの関数
fun 関数名(引数1: 型1, 引数2: 型2): 戻り値の型 {
// コード
return 戻り値
}
// デフォルト引数の指定も可能
fun 関数名(引数1: 型1 = デフォルト値1, 引数2: 型2 = デフォルト値2): 戻り値の型 {
// コード
return 戻り値
}
// 関数本体が単純な式の場合はブロックを省略できる。また、型推論が働くため戻り値の型も省略できる
fun 関数名(引数1: 型1 = デフォルト値1, 引数2: 型2 = デフォルト値2) = 式
Main.kt
fun main() {
println(sum1(3, 5)) // デフォルト引数なしの関数呼び出し
println(sum2(3)) // デフォルト引数ありの関数呼び出し, bとcはデフォルト引数が採用される
println(sum2(b = 3)) // 引数の値は明示的に指定が可能
println(sum3(1, 4))
}
fun sum1(a: Int, b: Int): Int {
return a + b
}
// デフォルト引数の指定も可能
fun sum2(a: Int = 5, b: Int = 4, c: Int = 8): Int {
return a + b + c
}
// 関数本体が単一の式を返す場合、中括弧を省略することができる。また、型推論が働くため戻り値の型も省略できる。
fun sum3(a: Int, b: Int) = a + b
可変長引数を持つ関数
Main.kt
fun main() {
varargFunction(1, 2, 3, 4, 5)
}
// vararg修飾子を使って可変長引数を定義できる、引数は配列となる
fun varargFunction(vararg nums: Int) {
// Kotlinでは関数リテラルがパラメータを1つだけ持つ場合省略可能、その場合itという名前になる
nums.forEach { print(it) }
}