Kotlin deja, ejecuta, también, aplica, con

En este tutorial, implementaremos algunas de las funciones de biblioteca estándar importantes disponibles en Kotlin. kotlin-stdlibNos proporciona funciones útiles de orden superior que implementan patrones idiomáticos. Veremos cómo hacen que la programación en Kotlin sea más fácil y rápida. Las funciones que analizaremos a continuación son:

  • dejar
  • correr
  • también
  • aplicar
  • con

Kotlin deja

letToma el objeto sobre el que se invoca como parámetro y devuelve el resultado de la expresión lambda. Let de Kotlin es una función de alcance en la que las variables declaradas dentro de la expresión no se pueden usar fuera. A continuación se muestra un ejemplo que demuestra la función let de Kotlin.

fun main(args: ArrayString) {    var str = "Hello World"    str.let { println("$it!!") }    println(str)}//Prints//Hello World!!//Hello World

itLa palabra clave contiene la copia de la propiedad dentro de let. El último valor de let se devuelve como argumento como se muestra a continuación.

var strLength = str.let { "$it function".length }println("strLength is $strLength") //prints strLength is 25

Encadenamiento de funciones let

var a = 1var b= 2a = a.let { it + 2 }.let { val i = it + b        i}println(a) //5

Como puedes ver, hemos declarado una variable local “i” dentro de la segunda función let. Al configurar la última declaración de la función let como , ise devuelve la propiedad a la propiedad externa a.

Anidación permitida

Podemos establecer una expresión let dentro de otra expresión let como se muestra a continuación.

var x = "Anupam"x.let { outer - outer.let { inner - print("Inner is $inner and outer is $outer") } }//Prints//Inner is Anupam and outer is Anupam

En el caso de let anidados, no podemos usar itpalabras clave. Necesitamos asignar nombres explícitos en itambas funciones let. Solo el let más externo devuelve el valor que se muestra a continuación.

var x = "Anupam"    x = x.let { outer -        outer.let { inner -            println("Inner is $inner and outer is $outer")            "Kotlin Tutorials Inner let"        }        "Kotlin Tutorials Outer let"     }    println(x) //prints Kotlin Tutorials Outer let

dejar para comprobaciones nulas

Además, let es útil para comprobar propiedades que aceptan valores NULL como se muestra a continuación.

var name : String? = "Kotlin let null check"name?.let { println(it) } //prints Kotlin let null checkname = nullname?.let { println(it) } //nothing happens

El código dentro de la expresión let se ejecuta solo cuando la propiedad no es nula. ¡De esta forma, let también nos ahorra el verificador de valores nulos if else !

Ejecución de Kotlin

Kotlin runes otra función interesante. El siguiente ejemplo muestra sus casos de uso.

var tutorial = "This is Kotlin Tutorial"    println(tutorial) //This is Kotlin Tutorial    tutorial = run {        val tutorial = "This is run function"        tutorial    }    println(tutorial) //This is run function

La expresión de ejecución de Kotlin puede cambiar la propiedad externa. Por lo tanto, en el código anterior, la hemos redefinido para el ámbito local.

  • De manera similar a la función let, la función run también devuelve la última declaración.
  • A diferencia de let, la función run no admite la itpalabra clave.

dejar correr

Combinemos las funciones let y run.

var p : String? = null    p?.let { println("p is $p") } ?: run { println("p was null. Setting default value to: ")        p = "Kotlin"}    println(p)//Prints//p was null. Setting default value to: //Kotlin

Kotlin también

Como lo indica el nombre, alsoexpressions realiza un procesamiento adicional en el objeto que se invocó. A diferencia de let, devuelve el objeto original en lugar de cualquier dato de retorno nuevo. Por lo tanto, los datos de retorno siempre tienen el mismo tipo. Al igual que let, alsouses ittoo.

var m = 1m = m.also { it + 1 }.also { it + 1 }println(m) //prints 1 

Kotlin let vs también

El siguiente fragmento de código muestra un excelente ejemplo para diferenciar entre lety also.

data class Person(var name: String, var tutorial : String)var person = Person("Anupam", "Kotlin")var l = person.let { it.tutorial = "Android" }var al = person.also { it.tutorial = "Android" }    println(l)println(al)println(person)

En el código anterior, hemos utilizado clases de datos . La expresión also devuelve el objeto de clase de datos, mientras que la expresión let no devuelve nada (Unit), ya que no especificamos nada explícitamente.

Aplicación de Kotlin

Kotlin applyes una función de extensión de un tipo. Se ejecuta en la referencia del objeto (también conocido como receptor) en la expresión y devuelve la referencia del objeto al finalizar.

data class Person(var name: String, var tutorial : String)var person = Person("Anupam", "Kotlin")person.apply { this.tutorial = "Swift" }println(person)

aplicar vs también

data class Person(var n: String, var t : String)var person = Person("Anupam", "Kotlin")person.apply { t = "Swift" }println(person)person.also { it.t = "Kotlin" }println(person)

Nota: No se permite aplicar it. Si el nombre de la propiedad de la clase de datos es único en la función, puede omitirlo this. Deberíamos usarlo alsosolo cuando no queramos hacer shadow this.

Kotlin con

Al igual que apply, withse utiliza para cambiar las propiedades de instancia sin la necesidad de llamar al operador de punto sobre la referencia cada vez.

data class Person(var name: String, var tutorial : String)var person = Person("Anupam", "Kotlin")with(person)    {        name = "No Name"        tutorial = "Kotlin tutorials"    }

Nuevamente withes similar applyexcepto por algunas diferencias.

Aplicar Kotlin vs con

  • con se ejecuta sin un objeto (receptor) mientras que apply necesita uno.
  • apply se ejecuta en la referencia del objeto, mientras que with solo lo pasa como argumento.
  • La última expresión de la función with devuelve un resultado.
var xyz = with(person)    {        name = "No Name"        tutorial = "Kotlin tutorials"        val xyz = "End of tutorial"        xyz    }    println(xyz) //End of tutorial

Eso es todo para las funciones estándar de Kotlin para alterar variables o modificar objetos dentro de la función.

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja un comentario

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

Scroll al inicio