inline function
This commit is contained in:
parent
6f3a381e3d
commit
7df2044775
29
src/senior/Lambda/InlineFunc.kt
Normal file
29
src/senior/Lambda/InlineFunc.kt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package senior.Lambda
|
||||||
|
|
||||||
|
import java.util.concurrent.locks.Lock
|
||||||
|
import java.util.concurrent.locks.ReentrantLock
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 内联函数
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class InlineFunc {
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
|
||||||
|
var lock = ReentrantLock()
|
||||||
|
check(lock) {
|
||||||
|
println("内联函数")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline fun <T> check(lock: Lock, body: () -> T): T {
|
||||||
|
lock.lock()
|
||||||
|
try {
|
||||||
|
return body()
|
||||||
|
} finally {
|
||||||
|
lock.unlock()
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user