【已解决】 public inline fun<T> T.apply(block:T.() ->Unit):T{
最近学习kotlin的高阶函数,有没有靓仔可以告诉我block的作用,
ps:我知道block用来接受类型为T.()->Unit的返回值
以apply源码为例子
@kotlin.internal.InlineOnly
public inline fun <T> T.apply(block: T.() -> Unit): T {
contract {
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
}
//这里的block是什么作用,明明是个空实现
block()
return this
}
//反编译源码后变为
@InlineOnly
private static final Object apply(Object $this$apply, Function1 block) {
int $i$f$apply = 0;
boolean var3 = false;
block.invoke($this$apply);
return $this$apply;
}
已解决