📜  科特林 |应用与

📅  最后修改于: 2022-05-13 01:55:17.330000             🧑  作者: Mango

科特林 |应用与

Kotlin ::应用

在 Kotlin 中,apply 是特定类型的扩展函数,并将其范围设置为调用 apply 的对象。 Apply 在对象引用上运行到表达式中,并在完成时返回对象引用。它当然不是简单地设置属性,而是执行更多功能,并且能够在返回之前评估复杂的逻辑。最后,它返回相同的对象,并进行了一些修改。

适用的定义:

inline fun  T.apply(block: T.() -> Unit): T 
{
    block()
    return this
}

应用示例

fun main(args: Array)
{
    data class GFG(var name1 : String, var name2 : String,var name3 : String)
    // instantiating object of class
    var gfg = GFG("Geeks","for","hi")
    // apply function invoked to change the name3 value
    gfg.apply { this.name3 = "Geeks" }
    println(gfg)
}

输出 :

GFG(name1=Geeks, name2=for, name3=Geeks)

在这里,GFG 类的第三个成员从“hi”变为“Geeks”。

Kotlin ::

apply一样, with也用于更改实例的属性。但是在这里我们不需要对象引用来运行,即:我们不需要运算符来引用。


定义

inline fun  with(receiver: T, block: T.() -> R): R 
{
    return receiver.block()
}

的例子

fun main(args: Array)
{
    data class GFG(var name1: String, var name2 : String,var name3 : String)
    var gfg = GFG("hello", "for","hi")
    // applying with function
    with(gfg)
    {
        name1 = "Geeks"
        name3 = "Geeks"
    }
    println(gfg)
}

输出 :

GFG(name1=Geeks, name2=for, name3=Geeks)

这里我们不需要任何运算符,我们使用扩展函数更改了 GFG 类对象的第一个和第三个变量的值。

apply 和 with 的区别