Lamda表達(dá)式寫起來可以讓代碼很簡單宛蚓。
以兩個數(shù)字求和為例
fun sum(args1: Int, args2: Int):Int {
return args1 + args2
}
val sum2 = {arg1: Int, arg2: Int -> arg1 + arg2}
上面的代碼一個是普通的函數(shù)闻坚,一個是Lamda表達(dá)式妆丘。它們的調(diào)用方式是完全相同的棚辽。
sum(3, 5)
sum2(3, 5)
Lamda表達(dá)式也可以寫成多行
val printhello = {
println("Hello")
}
調(diào)用方法如下
printhello()
再看 sum2 的花括號內(nèi)技竟,里面參數(shù)都有聲明。其實(shí)屈藐,如果只有一個參數(shù)的話榔组,這個參數(shù)聲明都是可以省掉的。
在具體的語句中联逻,使用 it 替代搓扯。
args.forEach{println(it)}
神奇的 Lamda 還可以更簡化一下
args.forEach(::println)
上面 2 條語句的效果是一樣的,都是打印出所有的參數(shù)來包归。然后我們利用 Lamda 的特點(diǎn)锨推,給出了代碼。
這個對應(yīng)我們常見的代碼是這樣的
for (i in args){
println(i)
}
使用 Lamda 表達(dá)式的寫法,我們還可以寫成相近的代碼
args.forEach ForEach@{
if (it == "i") return@ForEach
println(it)
}
你看换可,這樣就方便在其中添加業(yè)務(wù)邏輯了椎椰。而 ForEach@ 是標(biāo)簽。在遍歷中沾鳄,當(dāng)達(dá)到條件時慨飘,使用 return 跳出標(biāo)簽。
綜上所述译荞,我們知道
Lamda 表達(dá)式是匿名函數(shù)