Kotlin高階函式
以函式作為引數或返回函式的函式被稱為高階函式
fun numTest(num: Int, bool: (Int) -> Boolean): Int {
return if (bool(num)) num else 0
}
//invoking
println(numTest(5) { it > 5 })//print 0
println(numTest(8) { it > 5 })//println 8
fun numCompare(num1: Int, num2: Int, compare: (a: Int, b: Int) -> Boolean): Int {
return if (compare(num1, num2)) num1 else num2
}
fun biggerNum(a: Int, b: Int) = a > b
fun smallNum(a: Int, b: Int) = a < b
//invoking
println(numCompare(5, 8, ::biggerNum))//print 8
println(numCompare(1, 2, ::smallNum))//print 1
println(numCompare(10, 12) { a, b ->
a == b
})//print 12
Android開發中RecyclerView的Item點選事件
private var listener: ((Int, String) -> Unit)? = null
fun setOnClickListener(l: (position: Int, content: String) -> Unit) {
listener = l
}
//invoking
setOnClickListener { position, content ->
println("$position $content")
}
listener?.invoke(5, "China")//print 5 China
fun <T> lock(lock: Lock, body: () -> T): T {
lock.lock()
try {
return body()
} finally {
lock.unlock()
}
}
相關文章
- Kotlin 函式6 - 高階函式Kotlin函式
- Kotlin中的高階函式Kotlin函式
- Kotlin教程(八)高階函式Kotlin函式
- Kotlin——高階篇(二):高階函式詳解與標準的高階函式使用Kotlin函式
- Kotlin進階(二)中綴、內聯、高階函式Kotlin函式
- Kotlin知識歸納(十一) —— 高階函式Kotlin函式
- 一文弄懂 kotlin lambda與高階函式Kotlin函式
- 【碼上開學】Kotlin 的高階函式、匿名函式和 Lambda 表示式Kotlin函式
- Python 函式進階-高階函式Python函式
- 高階函式函式
- 從高階函式--->高階元件函式元件
- oracle 高階函式Oracle函式
- python高階函式Python函式
- 函式高階玩法函式
- Javascript 高階函式JavaScript函式
- javaScript高階級函式JavaScript函式
- python- 函式高階Python函式
- Javscript 高階函式(上)函式
- shell高階-----建立函式函式
- 高階函式的使用函式
- [譯]Effective Kotlin系列之探索高階函式中inline修飾符(三)Kotlin函式inline
- JS高階函式-函式柯里化JS函式
- Kotlin 之高階函式與Lambda表示式與閉包Kotlin函式
- 【Kotlin】函式Kotlin函式
- Kotlin——高階篇(一):Lambda表示式詳解Kotlin
- 高階函式簡述 js函式JS
- Haskell學習-高階函式Haskell函式
- openGauss 高階分析函式支援函式
- 高階函式 - Higher Order Function函式Function
- python高階內建函式Python函式
- 《前端之路》之 JavaScript 高階技巧、高階函式(一)前端JavaScript函式
- Python技法3:匿名函式、回撥函式和高階函式Python函式
- kotlin常用函式Kotlin函式
- Kotlin之“with”函式和“apply”函式Kotlin函式APP
- JavaScript 高階函式快速入門JavaScript函式
- Python中函式的高階使用Python函式
- 理解 JavaScript 中的高階函式JavaScript函式
- Array高階函式reduce&filter函式Filter