Kotlin | aplicar vs con

Kotlin::aplicar

En Kotlin , apply es una función de extensión en un tipo particular y establece su alcance en el objeto en el que se invoca apply. Aplicar ejecuciones en la referencia del objeto en la expresión y también devuelve la referencia del objeto al finalizar. Por supuesto, no solo establece propiedades, sino que hace muchas más funcionalidades y es capaz de evaluar una lógica compleja antes de regresar. Al final, devuelve el mismo objeto, con algunos cambios modificados.

  • apply es una función de extensión en un tipo.
  • Requiere una referencia de objeto para encontrarse con una expresión.
  • También devuelve una referencia de objeto al finalizar.
  • Definición de aplicar :

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

    Ejemplo de aplicar

    fun main(args: Array<String>)
    {
        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)
    }
    

    Producción :

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

    Aquí, el tercer miembro de la clase GFG se cambia de «hola» a «Geeks».

    Kotlin::con

    Al igual que apply , with también se usa para cambiar las propiedades de una instancia. Pero aquí no necesitamos una referencia de objeto para ejecutar, es decir, no necesitamos un operador de punto como referencia.


    Definición de con

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

    ejemplo de con

    fun main(args: Array<String>)
    {
        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)
    }
    

    Producción :

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

    Aquí no requerimos ningún operador de punto , y cambiamos los valores de la primera y tercera variables de un objeto de clase GFG usando la función de extensión.

    Diferencia entre aplicar y con

  • with se ejecuta sin un objeto mientras que apply necesita un objeto para ejecutarse
  • aplicar se ejecuta en la referencia del objeto, pero simplemente lo pasa como argumento
  • Publicación traducida automáticamente

    Artículo escrito por ManishKhetan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *