kotlin函数返回函数
https://blog.csdn.net/zhangphil/category_12220817.htmlhttps://blog.csdn.net/zhangphil/category_12220817.html
例1:
// func返回匿名函数
fun func(msg: String): (String, Int) -> String {
println("func函数 msg:$msg")
// 返回匿名函数
return { name: String, age: Int ->
"匿名函数:name:$name,age:$age,msg:$msg"
}
}
fun main(args: Array<String>) {
// foo是func函数的返回值,这个返回值是函数
val foo = func("kotlin")
// foo是匿名函数
println(foo("zhangphil", 18))
}
输出:
func函数 msg:kotlin
匿名函数:name:zhangphil,age:18,msg:kotlin
例2:计算 2 *(3+4)
fun math(c: Int): (Int, Int) -> Int {
return { a: Int, b: Int -> (a + b) * c }
}
fun main(args: Array<String>) {
val foo = math(2)
// foo是匿名函数
println(foo(3, 4))
}
输出:
14
kotlin协程、线程切换,函数方法委托_zhangphil的博客-CSDN博客runBlocking 内部启动的3个协程做耗时操作,从输出可以看到3个协程交叉并发执行,runBlocking 会等到3个协程执行结束后才退出,输出结果有明确先后顺序。一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可以设计一种托管的函数,在托管的函数里面干脏活,处理完成后,把结果抛到主线程。结果1-a: 5 - tid:22。结果1-b: 5 - tid:24。结果2-a: 9 - tid:22。https://zhangphil.blog.csdn.net/article/details/130161705