kotlin函数返回函数

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

猜你喜欢

转载自blog.csdn.net/zhangphil/article/details/129222840