こんにちは😀
今回もラムダ式をみていきます。
ラムダ式で言えば第三回になります。
クラスのプロパティに関数(ラムダ式)を持たせる書き方をしてみます。
以下のように、Calculationクラスを作成し、プロパティを定義します。
プロパティは4つ作成します。
4つ目のcalculateが関数のプロパティになります。
class Calculation(
val a:Int,
val b:Int,
val calculate: (Int, Int) -> Int,
val opr:String){
・・・・・・・・・・・・①
}
そして、クラスの中(①の部分)に4つのプロパティを用いる関数を作成します。
fun showCalc():String{
return “${a}${opr}${b}=${calculate(a,b)}”
}
そして、main関数を作成します。
関数のリストを作成し、上記のCalculationクラスをセットします。(3〜8行目)
ここはクラスの引数に、第一引数にInt、第二引数にInt、第三引数にラムダ式、第四引数にStringをセットしているのが分かります。
リストからfor文で要素を取り出して、showCalc関数を実行しています(10、11行目)
fun main(args: Array<String>) {
val calculates:List<Calculation> =
listOf(
Calculation(1,2,{a,b->a+b},”+”),
Calculation(1,2,{a,b->a-b},”-“),
Calculation(1,2,{a,b->a*b},”*”)
)
for (calc in calculates) {
println(calc.showCalc())
}
}
実行すると、以下のように順番ずつに式と解が出力されます。
ラムダ式の関数をクラスのプロパティに置くことで、処理を書ける幅が広がりますね。
プロパティに処理がまとまっていると、そのクラスの役割も分かりやすくなりコードを見やすくもなります。
今回はここまで🤚
では、また次回。