// 源码val add:(Int, Int)-> Int ={ a, b -> a + b }// 编译后等价于val add =object: Function2<Int, Int, Int>{overridefuninvoke(p1: Int, p2: Int): Int {return p1 + p2}}
7. 挂起 Lambda 的完整编译
// 源码val suspendAdd:suspend(Int, Int)-> Int ={ a, b ->delay(100)a + b
}// 编译后类似class SuspendLambda$1:SuspendLambda(2), Function3<Int, Int, Continuation<Int>, Any?>{overridefuninvoke(p1: Int, p2: Int, continuation: Continuation<Int>): Any?{returncreate(p1, p2, continuation).invokeSuspend(Result.success(Unit))}overridefuninvokeSuspend(result: Result<Any?>): Any?{// 状态机逻辑when(label){0->{label =1returndelay(100,this)}1->{return arg1 + arg2 // 捕获的参数}}}}