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