上文講了kotlin標(biāo)準(zhǔn)函數(shù)中的作用域函數(shù)(Scope Functions)抵乓,本文將對剩下幾個(gè)標(biāo)準(zhǔn)函數(shù)進(jìn)行介紹
作用域函數(shù)(Scope Functions):http://www.reibang.com/p/d8bb272de78c
TODO() 函數(shù) & TODO(reason: String) 函數(shù)
該方法沒什么可說的贯城,就是拋出個(gè)異常,提示有操作沒有完成厦坛。
takeIf函數(shù)
描述:論格式有點(diǎn)像作用域函數(shù)中的also函數(shù),同樣是開辟一塊臨時(shí)作用域執(zhí)行一段代碼,同樣是通過參數(shù)"it"的形式引用被操作對象(lambda語法糖:lambda表達(dá)式只有一個(gè)參數(shù)時(shí)败许,可以不顯示聲明參數(shù)垒酬,該參數(shù)名默認(rèn)為“it”)砰嘁,同樣也是將被操作的對象返回件炉。但不同的是lambda表達(dá)式的返回值為boolean類型,takeIf的返回值只有在lambda返回true的時(shí)候才會返回被操作對象矮湘,否則返回null斟冕。
格式:
val letResult = xiaoxin?.takeIf {
it.name = "xiao xin"
it.age = 18
it.age <= 20
}?.run {
println(name)
println(age)
}
takeUnless函數(shù)
描述:從名字上就可以看出來,它的使用和takeIf是剛好相反的缅阳,takeIf是符合條件就返回對象(否則返回null)磕蛇,takeUnless則是符合條件返回null,不符合條件返回對象
格式:
val letResult = xiaoxin?.takeUnless {
it.name = "xiao xin"
it.age = 18
it.age <= 20
}?.run {
println(name)
println(age)
}
repeat函數(shù)
描述:也是見名知意十办,它是用來做重復(fù)操作的秀撇。它接收兩個(gè)參數(shù),第一個(gè)是循環(huán)的次數(shù)向族,第二個(gè)是lambda表達(dá)式呵燕,概lambda函數(shù)便是被循環(huán)執(zhí)行的操作。lambda接收一個(gè)Int類型參數(shù)(默認(rèn)名為it)件相,表示循環(huán)的下標(biāo)(從0開始)再扭,返回值為Unit(沒有返回值,可以理解為java中的void)夜矗。
格式:
var i = 0
repeat(10) {
//需要循環(huán)執(zhí)行的代碼塊
i++
println("第${it}次循環(huán)泛范,i:$i")
}