可以讀取其餘函數內部變量的函數, 若是函數中最後一個參數爲閉包,那麼最後一個參數能夠不寫在括號內, 若是隻有一個參數,括號也能夠去掉閉包
循環執行n次block中的代碼app
repeat(3){
println("repeat")
}
複製代碼
指定T做爲閉包的receiver,在函數範圍內,能夠任意調用該對象的方法,能夠返回想返回的對象類型less
with(user){
setName("idu")
setPassword("123")
setAge(22)
}
複製代碼
默認當前這個對象做爲閉包的it參數,返回值是函數裏最後一行或者指定return函數
fun testLet(): User{
user.let{
it.setName("idu")
it.setPassword("123")
return it
}
}
複製代碼
調用某對象的apply後,在函數範圍內,能夠任意調用該對象的方法,返回thisui
var user2 = user.apply{
setName("idu")
}
複製代碼
與apply相似,返回同with,能夠返回想返回的對象類型this
var r = "".run {
1
}
複製代碼
不是extension,執行block,返回block的返回spa
var date = run {
Date()
}
複製代碼
執行block, 返回thiscode
val also = ArrayList<Int>().also {
}
複製代碼
知足block中的條件,返回this,不然返回null,最後一行返回值需是Boolean類型對象
var end = bitmap.takeIf {
1 > 2
}
複製代碼
與takeIf相反string