run函数是Kotlin中非常常用的一个函数,它接受一个lambda表达式作为参数,并在lambda表达式执行完毕后返回其最后一行的结果。run函数主要用于将多行代码包装成一个函数体,使其更加结构化和易于阅读。 例如,下面是一个使用run函数的示例: val result = run { val a = 10 val b = 20 a + b } println(result) ...
虽然run函数与with函数在某些方面功能上类似,但它们之间也存在一些重要区别。 run函数是一个扩展函数,可以直接在任意对象上调用,而with函数则是一个顶层函数,需要将对象作为参数传递给它。 run函数在 lambda 表达式中可以使用this关键字来引用对象本身,而with函数在 lambda 表达式中需要显式地引用对象参数。 结论 通过...
publicinline fun<T,R>T.run(block:T.()->R):Rpublicinline fun<R>run(block:()->R):R 先看第一种,看起来就是把let中函数参数中的 T 类型参数改成了接收者类型,也是返回 R 类型;这和apply与also的区别是一样的。 上下文对象 作为接收者(this)来访问。
.run{println("my name is $name, I am $age years old")}// JavaUser peole=newPeople("carson",25);String var1="my name is "+peole.name+", I am "+peole.age+" years old";System.out.println(var1); 5. apply函数 5.1 作用 & 应用场景 与run函数类似,但区别在于返回值: run函数返回最...
let函数 also函数 with函数 run函数 apply函数 基础知识:接口回调中Lambda使用 在Kotlin中可使用Lambda函数简化一些不必要的嵌套接口回调方法 注:仅支持单个抽象方法回调,多个回调方法不支持。 // Java接口回调mVar.setEventListener(newExamEventListener(){publicvoidonSuccess(Datadata){// ...}});// 同等效果的...
一、run 标准库函数 1、run 函数传入 Lambda 表达式作为参数 run 标准库函数原型如下 : /** * 调用以' this '值为接收者的指定函数[block],并返回结果。 * * 有关详细使用信息,请参阅[scope functions]的文档(https://kotlinlang.org/docs/reference/scope-functions.html#run)。
run 方法有两个函数签名 一个扩展函数 一个是普通函数 属于作用域函数的范畴 传递给 run 方法的Lambda函数的中的this,指向调用 run 方法的对象 但是在没有调用对象的情况下也可以直接执行 Lambda 函数的返回值作为run方法执行后的返回值 实例 class Person(var name: String) var noName = Person("noName") /...
@kotlin.internal.InlineOnlypublicinlinefun<T, R>T.run(block:T.() ->R): R { contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) }returnblock() } run 函数实际上可以说是let和with两个函数的结合体,run函数只接收一个lambda函数为参数,以闭包形式返回,即返回 lambda 表达式的返回值。
在kotlin标准库的Standard.kt 文件中,定义了一系列函数模板。其中的 [ run 、with、let、apply、aloso 、takeIf、takeUnless] 称作用域函数。 它们有个共同点是,最后一个参数都是一个函数指针,当使用 lambda 表达式 方式调用这些函数时,在{ } 内部,可以访问调用者对象而无需其名称,所以叫它们作用域函数。