Kotlin es un lenguaje de programación de propósito general tipificado estáticamente desarrollado por JetBrains, que ha creado IDE de clase mundial como IntelliJ IDEA, PhpStorm, Appcode, etc. Fue presentado por primera vez por JetBrains en 2011 y es un nuevo lenguaje para JVM. Kotlin es un lenguaje orientado a objetos y un «lenguaje mejor» que Java, pero aún así es totalmente interoperable con el código Java. En este artículo, vamos a discutir el uso de la palabra clave use en kotlin. antes de eso quiero que sepas algunos conceptos basicos para la comprension de la masa.
Idea básica
Hay algunas situaciones en las que, si usa un recurso (por ejemplo, un archivo), debe cuidar su ciclo de vida para no perder recursos. Por ejemplo, si lee de un archivo, debe cerrarlo después de usarlo o, de lo contrario, lo dejará en un estado inestable. Java 7 trajo una actualización que podía manejar esto sin necesidad de manejarlo explícitamente. Kotlin también ofrece esta función, pero de una forma mucho más sencilla. Lo hace usando el método use . ¡Entonces empecemos!
Ejemplo
Sigamos los siguientes pasos para comprender la función de uso de Kotlin:
Paso 1. Para entender la palabra clave use , necesitaremos volver a Java. Antes de Java 7, administrar los recursos que debían cerrarse era un poco engorroso. Por ejemplo, mira el siguiente código:
Kotlin
private static void printFile() throws IOException { InputStream input = null; try { input = new FileInputStream ("sampleFile.txt"); // Some operation using input object } finally { if(input != null){ input.close(); // closing the resource } } }
Paso 2. Examinemos el código anterior. Sabemos que se puede lanzar una excepción dentro del bloque de prueba cuando usamos el objeto de entrada. Sin embargo, también se puede lanzar en el bloque finalmente , porque estamos tratando de cerrar el objeto de entrada. Ahora se llamará al bloque » finally «, ya sea que el bloque «try» arroje o no una excepción. Supongamos que tanto el bloque try como el bloque finalmente arrojan excepciones, ¿cuál de los dos se propagará? La respuesta es que la excepción se lanzará en el bloque finalmente , incluso si la excepción de prueba tendría más sentido aquí.
Paso 3. Java 7 trajo una actualización a este problema al introducir la construcción try-with-resource, que se parece a esto:
Kotlin
try (FileInputStream input = new FileInputStream ("file. txt")) { int data-input.read(); // operations on input object }
Paso 4. Cuando el bloque try termina de ejecutarse, el objeto FileInputStream se cierra automáticamente. Además, si tanto las operaciones input.read( ) como el cierre del objeto de entrada lanzan excepciones, la excepción lanzada por input.read() se propagará. La palabra clave use de Kotlin hace exactamente el mismo trabajo. En esta sección veremos cómo.
Paso 5. En el ejemplo anterior, vimos que en Java se verá algo como lo siguiente en Kotlin si implementamos la palabra clave use :
Kotlin
FileInputStream ("file. txt") . use { input -> var data = input.read() }
use acepta un literal de función y se define como una extensión en una instancia de closeable. Cerrará el recurso, al igual que la construcción try-with-resources, después de que se haya completado la función, ya sea que se haya generado una excepción o no.
Publicación traducida automáticamente
Artículo escrito por eralokyadav2019 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA