【Kotlin入門】ラムダ式と無名関数の併用

スポンサーリンク
Kotlin

こんにちは😀

ラムダ式は何回かみてきましたが、実際ラムダ式が使いづらい場面もあります。
そういう場合には、普通に無名関数を使用した方がいいのでそういうケースをみてみます。

例えば、ラムダ式は「{引数->戻り値}」のように1行で書けるのが長所で、関数自体が複雑になると無名関数を使った方が便利になります。

以下の割り算の計算のように、if文で結果を分岐する場合は無名関数を使います。

fun(a,b):String{if(b==0) return “0”
else return (a/b).toString()

そして、前回作成したshowCalc関数に上記の関数を追加してみましょう。
6、7行目を追加しています。
他の式はラムダ式を使用しているので、両者を併用できているのがわかります。

fun showCalc(opr:String):(Int,Int)->String{
return when (opr){
“+” -> {a,b -> (a+b).toString()}
“-” -> {c,d -> (c-d).toString()}
“*” -> {e,f -> (e*f).toString()}
“/” -> fun(a,b):String{if(b==0) return “0”
else return (a/b).toString() }
else -> {g,h -> “${opr}???”}
}
}

main関数も割り算の条件を追加してみます。(6行目)
他は前回同様に、9行目のsetCalc関数からshowCalc関数を呼ぶ処理になっています。

fun main(args: Array<String>) {

val a = 55
val b = 20

val oprs = listOf(“+”,”-“,”*”,”#”,”/”)

for (opr in oprs) {
println(setCalc(a,b,opr))
}
}

実行します。
5番目に指定した割り算の式と解が出力されています。
ラムダ式と無名関数1

ラムダ式も短い処理で使いやすいというメリットがありますが、無名関数と使い分けることで処理の幅も広がります。

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】

コメント

タイトルとURLをコピーしました