KotlinLearning: 03-2 関数

17/01/2021

関数本体

関数の定義部の後には{}で定義された関数本文があります。

関数のスコープ

private fun coffeeTaste(sugar: Int): String {
    val taste = when (sugar) {
        0 -> "bitter"
        1 -> "sweet"
        else -> "too sweet"
    }
    return taste
}

定義された変数などを使うことができる範囲をスコープと呼びます。
スコープがメソッド内など狭い範囲に限定されて存在する変数をローカル変数と言います。
ローカル変数は関数の処理が終了するとガベージコレクションの対象になりますので、変数のライフサイクルをスコープと考えることもできます。

関数の外側やクラスの外側に変数を宣言するとファイルレベル変数となり、どこからでもその変数にアクセスできるようになります。
アクセスを制限したい場合は可視性修飾子を付け、制限することができます。

関数の呼び出し

val taste = coffeeTaste(2)

これが関数の呼び出しです。
関数をトリガーし関数本体で定義されたアクションを実行します。

関数を呼び出す時に渡す引数を実引数、関数側で定義されている引数を仮引数と呼びます。
関数の呼び出し時にどの仮引数に実引数を割り当てるか、仮引数名を用いて指定することができます。

//関数呼び出し
orderCoffee(CITY_ROAST, 2, false, HOT)

仮引数名を指定せずに引数を渡す場合、仮引数の定義順に実引数を渡す必要があります。

//関数呼び出し(仮引数名を指定)
orderCoffee(
    sugar = 2,
    milk = false,
    type = HOT,
    roast = CITY_ROAST
)

仮引数名を指定して引数を渡す場合、仮引数の定義順とは関係なく自由に呼び出すことができます。

Advertisements