Usar Kotlin Script para ejecutar scripts por consola
Antonio Leiva

Es posible que ya conozcas Kotlin para desarrollar Apps Android, pero los tentáculos de Kotlin llegan hoy a todas partes.

¿Sabías que existe una variante llamada Kotlin Script que te permite crear ficheros de script y ejecutarlos desde la consola de comandos?

¿Cómo es un script en Kotiln?

Un script Kotlin es simplemente un archivo con extensión .kts que contiene código Kotlin. Puedes escribir cualquier código Kotlin válido en un script, incluyendo declaraciones de variables, funciones y clases. Una vez que tienes tu script Kotlin listo, puedes ejecutarlo desde la consola usando el comando kotlinc seguido del nombre del archivo.

Por ejemplo, si tienes un script Kotlin llamado «hola.kts» que imprime «Hola mundo» en la consola, puedes ejecutarlo de la siguiente manera:

kotlinc -script hola.kts

Para pasar argumentos a tu script Kotlin, puedes usar el comando kotlinc-jvm y pasar los argumentos a través de la línea de comandos.

Por ejemplo, si quieres pasar el argumento «Mundo» a tu script y que este lo imprima en la consola, puedes hacerlo de la siguiente manera:

kotlinc -script hola.kts Mundo

En este caso, el script Kotlin recibiría el argumento «Mundo» y lo imprimiría en la consola.

Además de ejecutar scripts Kotlin desde la consola, también es posible incluir scripts Kotlin en aplicaciones Java existentes como una forma de extender la funcionalidad de la aplicación.

Para incluir un script Kotlin en una aplicación Java, puedes usar la API de scripting de Kotlin y cargar el script como un archivo de recursos en tu aplicación.

Un ejemplo de script en Kotlin

Aquí tienes un ejemplo de un script que recibe una palabra, y calcula mostrando como resultado cuántas apariciones de cada vocal hay en la palabra.

Crea por ejemplo un fichero llamado contarvocales.kts, y añade el siguiente código:

// Verificamos si se ha proporcionado una palabra como argumento
if (args.isEmpty()) {
    println("Por favor proporciona una palabra como argumento")
    System.exit(0)
}

val word = args[0]

// Creamos un mapa que almacenará el número de veces que aparece cada vocal en la palabra
val vowelCount = mutableMapOf<Char, Int>()
for (vowel in listOf('a', 'e', 'i', 'o', 'u')) {
    vowelCount[vowel] = 0
}

// Recorremos la palabra y contamos cuántas veces aparece cada vocal
for (c in word) {
    if (c in vowelCount) {
        vowelCount[c] = vowelCount[c]!! + 1
    }
}

// Mostramos el resultado
for (vowel in vowelCount.keys) {
    println("$vowel: ${vowelCount[vowel]}")
}

Ahora, para ejectuarlo:

kotlinc -script contarvocales.kts esternocleidomastoideo

Verás que el resultado es:

a: 1
e: 4
i: 2
o: 4
u: 0

Conclusión

En resumen, Kotlin script es una forma conveniente y potente de ejecutar código Kotlin directamente desde la consola o de incluirlo en aplicaciones Java existentes.

Con su sintaxis concisa y su compatibilidad con Java, Kotlin es una opción atractiva para muchos desarrolladores y puede ser una herramienta valiosa en tu caja de herramientas de programación.

Quizá también te interese…

Cómo crear un backend en Kotlin usando Ktor

Cómo crear un backend en Kotlin usando Ktor

Ktor es un framework de servidor web ligero y rápido para Kotlin, desarrollado por JetBrains. Es ideal para crear aplicaciones web y servicios RESTful, y es muy fácil de usar y configurar. En este artículo, vamos a ver cómo crear un backend para una aplicación de...

Cómo simular una base de datos reactiva en Room con Fakes

Cómo simular una base de datos reactiva en Room con Fakes

En el desarrollo de aplicaciones móviles es muy común utilizar bases de datos para almacenar y gestionar la información que se utiliza en la aplicación. En el caso de Android, una de las opciones más populares es Room, una librería de persistencia de datos que...

Flows de Kotlin para implementar búsquedas en tiempo real

Flows de Kotlin para implementar búsquedas en tiempo real

En Android, los Flows de Kotlin son una manera de representar secuencias de datos asincrónicas que emiten valores de forma continua. Estos Flows pueden ser útiles en situaciones en las que deseamos escuchar eventos y procesar los resultados de forma asíncrona, como en...

0 comentarios

Enviar un comentario

Los datos personales que proporciones a través de este formulario quedarán registrados en un fichero de DevExpert, S.L.U., con el fin de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento de la parte interesada. Si no se acepta, no podrás comentar en este blog. Los datos que proporciona solo se utilizan para evitar el correo no deseado y no se usarán para nada más. Puede ejercer los derechos de acceso, rectificación, cancelación y oposición en contacto@devexperto.com.

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

Acepto la política de privacidad *