【Kotlin文法】関数型 ③関数をパラメータにする方法

はじめに
ここまで ①変数に関数を入れる方法 と ②関数を戻り値にする方法 を紹介しましたが、関数をパラメータにすることもできます。
この記事では関数型を関数のパラメータにする方法を紹介します。
fun 関数名(パラメータA, 関数型のパラメータ) = {
}
コードの実行には Kotlin PlayGround を使用しています。
関数を引数にする方法
1. 基本的な書き方
playGame 関数の2つ目のパラメータを関数型にしています。
2〜4行目で用意した関数型の変数 point を引数として渡しているのが6行目です。

コードを実行すると「100ポイント獲得」と表示されます。

2. Null許容型にする
関数型のパラメータも Null 許容型にすることができます。
10行目のように ? をつけるだけです。
Null 許容型なので point 関数を使うときは12〜14行目のように NULL チェックをいれます。
色々なパターンでコードを実行してみてください。

補足:後置ラムダ構文
先ほどは val point(2〜4行目)を用意して引数にしていましたが、関数を直接書くこともできます。
val game1 = playGame(true, {
"$it ポイント獲得"
})
game1()
ラムダ式では「最後の引数が関数型の場合は {} を外に出せる」というルールがあるので
val game1 = playGame(true) { "$it ポイント獲得" }
game1()
と書くことができます。
これを後置ラムダ構文といいます。