Tu primer programa en Kotlin

1. Antes de comenzar

Logotipo de Android con Kotlin

Para crear apps de Android, escribirás código en el lenguaje de programación Kotlin, el lenguaje recomendado por Google para quienes no tienen experiencia con Android.

Kotlin es un lenguaje de programación moderno que ayuda a los desarrolladores a aumentar su productividad. Por ejemplo, te permite ser más conciso y escribir menos líneas de código para la misma funcionalidad en comparación con otros lenguajes de programación. Las apps compiladas con Kotlin tienen menos probabilidades de fallar, lo que genera una app más estable y sólida para los usuarios. Básicamente, con Kotlin, puedes escribir mejores apps para Android en menos tiempo. Como resultado, Kotlin se está imponiendo en la industria y es el lenguaje que usa la mayoría de los desarrolladores profesionales de Android.

A fin de comenzar a compilar apps para Android en Kotlin, es importante establecer primero una base sólida de conceptos de programación en Kotlin. Con los codelabs de esta ruta de aprendizaje, aprenderás sobre los conceptos básicos de programación de Kotlin antes de profundizar en la creación de apps.

Qué compilarás

  • Programas cortos en Kotlin que muestran mensajes cuando los ejecutas

Qué aprenderás

  • Cómo escribir y ejecutar un programa simple de Kotlin
  • Cómo modificar un programa simple para cambiar el resultado

Requisitos

  • Una computadora con acceso a Internet y un navegador web

2. Cómo comenzar

En este codelab, explorarás y modificarás programas simples en Kotlin. Se puede entender un programa como una serie de instrucciones para que una computadora o un dispositivo móvil realicen una acción, como mostrar un mensaje a un usuario o calcular el costo de los artículos en un carrito de compras. Las instrucciones paso a paso para lo que la computadora debe hacer se llama código. Cuando modificas el código en un programa, el resultado puede cambiar.

Para escribir y editar tu código, debes usar una herramienta llamada editor de código. Es similar a un editor de texto en el que puedes escribir y editar texto, pero este además proporciona funcionalidades para ayudarte a escribir código con mayor precisión. Por ejemplo, un editor de código muestra sugerencias de autocompletado mientras escribes y mensajes de error cuando el código es incorrecto.

Para practicar los conceptos básicos del lenguaje Kotlin, usarás un editor de código interactivo llamado Playground de Kotlin. Puedes acceder a él desde un navegador web, por lo que no necesitas instalar ningún software en tu computadora. Puedes editar y ejecutar código Kotlin directamente en el Playground de Kotlin y ver el resultado.

Ten en cuenta que no puedes compilar apps para Android dentro del Playground de Kotlin. En rutas posteriores, instalarás y usarás una herramienta llamada Android Studio para escribir y editar el código de tu app para Android.

Ahora que tienes contexto sobre Kotlin, mira el primer programa.

3. Como abrir Playground de Kotlin

  1. En un navegador web de tu computadora, abre Playground de Kotlin.

Deberías ver una página web similar a esta imagen:

Se muestra una captura de pantalla de Playground de Kotlin. El editor de código muestra un programa simple para imprimir "Hello, world!" en el resultado.

Ya existe un código predeterminado propagado en el editor de código. Estas tres líneas de código conforman un programa simple:

fun main() {
    println("Hello, world!")
}

Incluso si nunca antes programaste, ¿puedes adivinar qué hace el programa?

En la siguiente sección, verás si tu respuesta es correcta.

4. Cómo ejecutar tu primer programa

Haz clic en Botón Ejecutar para ejecutar el programa.

Cuando haces clic en el botón Ejecutar, suceden muchas cosas. El objetivo del código en el lenguaje de programación Kotlin es que los humanos lo entiendan, de modo que las personas puedan leer, escribir y colaborar más fácilmente en programas de Kotlin. Sin embargo, la computadora no comprende este idioma de inmediato.

Necesitas algo llamado el compilador de Kotlin, que toma el código Kotlin que escribiste, lo analiza línea por línea y lo traduce a algo que la computadora puede comprender. Este proceso se denomina compilación de código.

Si tu código se compila correctamente, el programa se ejecutará. Cuando la computadora ejecuta tu programa, realiza cada una de tus instrucciones. Si alguna vez seguiste una receta de cocina, se podría considerar que cada paso de la receta es la ejecución de una instrucción.

En la siguiente captura de pantalla, se muestra lo que deberías ver cuando ejecutas tu programa.

Esta captura de pantalla muestra una parte de la página web del Playground de Kotlin. El editor de código muestra el código de un programa llamado Hello World. Debajo del editor de código, se encuentra un panel de resultados que muestra la frase "Hello, World!".

En la parte inferior del editor de código, deberías ver un panel en el que se muestra la salida o el resultado de tu programa:

Hello, world!

Genial. El objetivo de este programa es imprimir o mostrar un mensaje que diga Hello, world!.

¿Cómo funciona? Es necesario que un programa de Kotlin tenga una función principal, que es el lugar específico en tu código donde comienza el compilador Kotlin. La función principal es el punto de entrada, o punto de partida, del programa.

Hay una flecha que apunta a la primera línea de la función principal de un programa simple con una etiqueta que dice "Comienza aquí".

Es posible que te preguntes qué es una función.

5. Partes de una función

Una función es una sección del programa que realiza una tarea específica. Puedes tener muchas funciones en tu programa o solo una.

Cómo definir una función o cómo llamarla

Primero, debes definir una función en tu código. Esto significa que debes especificar todas las instrucciones necesarias para realizar esa tarea.

Una vez definida la función, puedes llamar a esa función para que se puedan realizar o ejecutar las instrucciones dentro de ella.

Esta es una analogía: Escribes instrucciones paso a paso para preparar un pastel de chocolate. Este conjunto de instrucciones puede tener un nombre: bakeChocolateCake. Cada vez que quieras hornear un pastel, puedes ejecutar las instrucciones de bakeChocolateCake. Si quieres 3 pasteles, debes ejecutar las instrucciones de bakeChocolateCake 3 veces. Lo primero es definir los pasos y asignarle un nombre, lo que se considera definir la función. Luego, puedes consultar los pasos cada vez que desees que se ejecuten, lo que se considera llamar a la función.

Cómo definir una función

Estas son las partes clave necesarias para definir una función:

  • La función necesita un nombre para que puedas llamarla más tarde.
  • También puede requerir algunas entradas o información que se debe proporcionar cuando se la llama. La función usa estas entradas para lograr su propósito. Requerir entradas es opcional, algunas funciones no las necesitan.
  • La función también tiene un cuerpo que contiene las instrucciones para realizar la tarea.

Este diagrama representa una función como un cuadro negro con la etiqueta "nombre", que es el nombre de la función. Dentro del cuadro de la función, se encuentra un cuadro más pequeño llamado cuerpo que representa el cuerpo de la función dentro de esta. También hay una etiqueta llamada "entradas", con una flecha que apunta al cuadro negro de la función, que indica que hay entradas de funciones que se pasan a la función.

Si quieres traducir el diagrama anterior a código Kotlin, sigue la sintaxis o el formato que se detalla a continuación para definir una función. El orden de estos elementos es importante. La palabra "fun" debe ir primero, seguida del nombre de la función, seguida de las entradas entre paréntesis y, luego, llaves.

En este diagrama, se muestra la sintaxis (o el formato) para declarar una función en el código Kotlin. La función comienza con la palabra "fun". A la derecha, hay un cuadro etiquetado como "nombre". A la derecha de ese cuadro, hay un cuadro con la etiqueta "entradas" entre paréntesis. Luego, hay una llave de apertura. En la línea siguiente, hay un cuadro etiquetado como "cuerpo" con una sangría a la derecha. En la parte inferior de la función, después de "cuerpo", hay una llave de cierre.

Observa las partes clave de una función dentro del ejemplo de función principal que viste en el Playground de Kotlin:

  • La definición de la función comienza con la palabra fun.
  • Luego, el nombre de la función es main.
  • No hay entradas para la función, por lo que los paréntesis están vacíos.
  • Hay una línea de código en el cuerpo de la función, println("Hello, world!"), que se encuentra entre las llaves de apertura y cierre de la función.

En la imagen, se muestra el siguiente código de la función principal: fun main() {     println("Hello, world!") } Hay una etiqueta llamada "nombre" que apunta a la palabra "main". Hay una etiqueta denominada "entradas" que apunta a los símbolos de paréntesis de apertura y cierre.  Hay una etiqueta llamada "cuerpo" que apunta a la línea de código println("Hello, world!").

A continuación, se explica con más detalle cada parte de la función.

Palabra clave de función

Para indicar que estás a punto de definir una función en Kotlin, usa la palabra especial fun (abreviatura de función) en una línea nueva. Debes escribir fun exactamente como se muestra, con letras minúsculas. No puedes usar func, función ni otras opciones similares de ortografía porque el compilador de Kotlin no reconocerá lo que quieres decir.

Estas palabras especiales se denominan palabras clave en Kotlin y están reservadas para un propósito específico, como crear una función nueva en Kotlin.

Nombre de la función

Las funciones tienen nombres para que puedan distinguirse unas de otras, de manera similar a la forma en que las personas tienen nombres para identificarse. El nombre de la función se encuentra después de la palabra clave fun.

En este diagrama, se muestra la sintaxis (o el formato) para declarar una función en el código Kotlin. La función comienza con la palabra "fun". A la derecha, hay un cuadro etiquetado como "nombre". El cuadro "nombre" está destacado con un borde y un fondo verdes para enfatizar esta parte de la definición de la función. A la derecha de ese cuadro, hay un cuadro con la etiqueta "entradas" entre paréntesis. Luego, hay una llave de apertura. En la línea siguiente, hay un cuadro etiquetado como "cuerpo" con una sangría a la derecha. En la parte inferior de la función, después de "cuerpo", hay una llave de cierre.

Elige un nombre adecuado para la función según su propósito. Por lo general, el nombre es un verbo o una frase verbal. Te recomendamos que evites usar una palabra clave de Kotlin como nombre de la función.

Los nombres de las funciones deben seguir la convención de mayúsculas y minúsculas, en la que la primera palabra del nombre de la función es minúscula. Si el nombre contiene varias palabras, no se escriben espacios entre ellas y todas las demás palabras deben comenzar con mayúscula.

Ejemplos de nombres de funciones:

  • calculateTip
  • displayErrorMessage
  • takePhoto

Entradas de funciones

Observa que el nombre de la función siempre va seguido de paréntesis. Entre estos paréntesis, se enumeran las entradas de la función.

En este diagrama, se muestra la sintaxis (o el formato) para declarar una función en el código Kotlin. La función comienza con la palabra "fun". A la derecha, hay un cuadro etiquetado como "nombre". A la derecha de ese cuadro, hay un cuadro con la etiqueta "entradas" entre paréntesis. Se destaca el cuadro "entradas" con un borde y un fondo verdes para enfatizar esta parte de la función. Luego, hay una llave de apertura. En la línea siguiente, hay un cuadro etiquetado como "cuerpo" con una sangría a la derecha. En la parte inferior de la función, después de "cuerpo", hay una llave de cierre.

Una entrada es un dato que necesita una función para cumplir su propósito. Cuando defines una función, puedes solicitar que se pasen ciertas entradas en el momento en que se la llama. Si una función no tiene entradas, los paréntesis aparecen vacíos en ().

Estos son algunos ejemplos de funciones con una cantidad diferente de entradas:

En el siguiente diagrama, se muestra una función llamada addOne. El propósito de la función es agregar 1 a un número determinado. Hay una entrada, que es el número específico. Dentro del cuerpo de la función, hay código que agrega 1 al número que se pasó a la función.

Este diagrama representa una función como un cuadro negro con la etiqueta "addOne", que es el nombre de la función. Dentro del cuadro de la función, se encuentra un cuadro más pequeño que representa el cuerpo de la función. Dentro del cuadro del cuerpo de la función, hay texto que dice "número + 1". Fuera del cuadro negro de la función, hay un cuadro etiquetado como "número" con una flecha que apunta al cuadro negro de la función. El número es una entrada de la función.

En el siguiente ejemplo, hay una función llamada printFullName. Se requieren dos entradas para la función, una para el nombre y otra para el apellido. El cuerpo de la función imprime el nombre y el apellido en el resultado para mostrar el nombre completo de la persona.

Este diagrama representa una función como un cuadro negro con la etiqueta "printFullName", que es el nombre de la función. Dentro del cuadro de la función, se encuentra un cuadro más pequeño que representa el cuerpo de la función. Dentro del cuadro del cuerpo de la función, hay un texto que dice: "Imprimir firstName y lastName en el resultado". Fuera del cuadro negro de la función, hay dos cuadros etiquetados como "firstName" y "lastName", respectivamente. Hay flechas de los cuadros "firstName" y "lastName" que apuntan al cuadro negro de la función. "firstName" y "lastName" son dos entradas para la función.

En el último ejemplo, se muestra una función que no requiere que se pasen entradas cuando se la llama. Cuando llamas a la función displayHello(), se muestra un mensaje de bienvenida en el resultado.

Este diagrama representa una función como un cuadro negro con la etiqueta "displayHello" en su nombre, que es el nombre de la función. Dentro del cuadro de la función, se encuentra un cuadro más pequeño que representa el cuerpo de la función. Dentro del cuadro del cuerpo de la función, hay un texto que dice "Imprimir hola en el resultado".

Cuerpo de la función

El cuerpo de la función contiene las instrucciones necesarias para lograr el propósito de la función. Para buscar el cuerpo de la función, busca las líneas de código encerradas entre llaves de apertura y cierre.

En este diagrama, se muestra la sintaxis (o el formato) para declarar una función en el código Kotlin. La función comienza con la palabra "fun". A la derecha, hay un cuadro etiquetado como "nombre". A la derecha de ese cuadro, hay un cuadro con la etiqueta "entradas" entre paréntesis. Luego, hay una llave de apertura. En la línea siguiente, hay un cuadro etiquetado como "cuerpo" con una sangría a la derecha. Se destaca el cuadro "cuerpo" con un borde y un fondo verdes para enfatizar esta parte de la función. En la parte inferior de la función, después de "cuerpo", hay una llave de cierre.

Explicación de un programa sencillo

Observa el programa sencillo que viste antes en el codelab.

En la imagen, se muestra el siguiente código de la función principal: fun main() {     println("Hello, world!") } Hay una etiqueta llamada "nombre" que apunta a la palabra "main". Hay una etiqueta denominada "entradas" que apunta a los símbolos de paréntesis de apertura y cierre.  Hay una etiqueta llamada "cuerpo" que apunta a la línea de código println("Hello, world!").

El programa contiene una función: la función principal. "main" es un nombre de función especial en Kotlin. Cuando escribes tu código en el Playground de Kotlin, debes escribirlo dentro de la función main() o llamarlo desde la función main().

Solo hay una línea de código en el cuerpo de esta función main():

println("Hello, world!")

Esta línea de código es una sentencia porque realiza una acción específica, que consiste en imprimir el texto Hello, world! en el panel de resultados. En concreto, se llama a la función println() en esta línea de código. println() es una función que ya está definida en el lenguaje Kotlin. Esto significa que el equipo de ingenieros que creó el lenguaje Kotlin ya escribió la declaración de función println(). La función requiere una entrada, que es el mensaje que se debe imprimir.

Cuando llames a la función println(), coloca el texto del mensaje entre paréntesis después del nombre de la función. Asegúrate de encerrar el texto entre comillas, como "Hello, world!".

Cuando se ejecuta el programa, el mensaje que se pasó a la función println() se imprime en el resultado:

Hello, world!

Pruébalo

Ahora, revisa el código original del programa. ¿Puedes modificar el código en el Playground de Kotlin de modo que el resultado muestre este mensaje?

Hello, Android!

6. Cómo modificar tu programa

  1. Para cambiar el mensaje que se muestra en el resultado, modifica la llamada a función println() en la segunda línea del programa. Reemplaza world por Android en la función println(). Asegúrate de que "Hello, Android!" aún esté entre comillas y entre paréntesis.
fun main() {
    println("Hello, Android!")
}
  1. Ejecuta el programa.
  2. El resultado debería mostrar este mensaje:
Hello, Android!

Buen trabajo. Modificaste tu primer programa.

¿Puedes cambiar el código para que el mensaje se imprima dos veces? A continuación, verás el resultado deseado:

Hello, Android!
Hello, Android!

Puedes colocar tantas líneas de instrucciones dentro de una función como necesites para realizar una tarea. Sin embargo, ten en cuenta que solo debe haber una declaración por línea en Kotlin. Si deseas escribir otra declaración, colócala en una línea nueva de la función.

Si quieres cambiar el programa para imprimir varias líneas de texto, haz lo siguiente:

  1. Copia la sentencia inicial println() y pega la segunda en el cuerpo de la función. Las dos sentencias println() deben estar incluidas en las llaves de la función principal. Ahora, tienes dos declaraciones en el cuerpo de la función.
fun main() {
    println("Hello, Android!")
    println("Hello, Android!")
}
  1. Ejecuta el programa.
  2. Cuando ejecutes el programa, el resultado debería ser el siguiente:
Hello, Android!
Hello, Android!

Puedes ver cómo los cambios en el código afectan el resultado.

  1. Cámbialo para que diga Hello, YOUR_NAME!.

7. Guía de estilo de Kotlin

A lo largo de este curso, aprenderás sobre las prácticas recomendadas de codificación que debes seguir como desarrollador de Android. Una de estas prácticas es seguir los estándares de codificación de Android creados por Google para el código escrito en Kotlin. La guía completa se denomina guía de estilo y explica cómo se debe dar formato al código en términos de apariencia visual y las convenciones que se deben seguir cuando se escribe el código. Por ejemplo, la guía de estilo incluye recomendaciones sobre el uso de espacios en blanco, las sangrías, los nombres y mucho más.

El objetivo de seguir la guía de estilo es hacer que tu código sea más fácil de leer y más coherente con la manera en que otros desarrolladores de Android escriben su código. Esta coherencia es importante cuando se colabora en proyectos grandes, para que el estilo de código sea el mismo en todos los archivos del proyecto.

A continuación, se incluyen algunas de las recomendaciones de la guía de estilo para lo que aprendiste en Kotlin hasta el momento:

  • Los nombres de las funciones deben seguir la convención de mayúsculas y minúsculas, y deben ser verbos o frases verbales.
  • Cada sentencia debe estar en su propia línea.
  • La llave de apertura debe aparecer al final de la línea donde comienza la función.
  • Debe haber un espacio antes de la llave de apertura.

En la imagen, se muestra el siguiente código de la función principal: fun main() {     println("Hello, world!") } Hay una etiqueta llamada "espacio" que apunta al espacio después de los símbolos de paréntesis y antes de la llave de apertura.

  • El cuerpo de la función debe tener una sangría de 4 espacios. No uses caracteres de tabulación para aplicar sangría al código. Escribe 4 espacios.

En la imagen, se muestra el siguiente código de la función principal: fun main() {     println("Hello, world!") } Hay una flecha que apunta a la línea de código en el cuerpo de la función: println("Hello, world!"). La flecha tiene una etiqueta que dice: "sangría de 4 espacios".

  • La llave de cierre se encuentra en su propia línea después de la última línea de código del cuerpo de la función. La llave de cierre debe alinearse con la palabra clave fun al comienzo de la función.

En la imagen, se muestra el siguiente código de la función principal: fun main() {     println("Hello, world!") } Hay una línea vertical que aparece en el borde izquierdo del código de la función. Se encuentra a la izquierda de la palabra "funtion" y se extiende verticalmente hasta la llave de cierre de la función. La línea vertical tiene una etiqueta que dice "alineada verticalmente". La línea indica que la palabra "fun" y la llave de cierre deben estar alineadas verticalmente.

Aprenderás más convenciones de codificación de Android a medida que aprendas más sobre Kotlin. Puedes encontrar la guía de estilo completa aquí. No te preocupes, porque abarca otros temas de Kotlin que todavía no aprendiste.

8. Cómo corregir los errores de tu código

Cuando aprendes un lenguaje humano, existen reglas de sintaxis y gramática para usar correctamente las palabras y formar oraciones. Del mismo modo, para los lenguajes de programación, hay reglas específicas que determinan lo que hace que un código sea válido, es decir, que el código se compile correctamente.

Una parte normal del proceso de codificación implica cometer errores y escribir código no válido por accidente. Como principiante, esta experiencia puede resultarte confusa o abrumadora. Pero no te preocupes, es lógico que ocurra. El código rara vez funciona a la perfección la primera vez que lo escribes. Así como escribir un documento requiere muchos borradores, escribir código puede tomar muchas iteraciones hasta que funcione como se espera.

Si el código no se puede compilar correctamente, se generará un error. Por ejemplo, si hay un error tipográfico, como una comilla o un paréntesis faltantes, el compilador no comprenderá tu código y no podrá traducirlo a pasos para que la computadora lo ejecute. Si tu código no funciona como se espera o ves un mensaje de error en el editor de código, debes volver al código y corregirlo. El proceso de resolver estos errores se denomina solución de problemas.

  1. Copia y pega el siguiente fragmento de código en el Playground de Kotlin y ejecuta el programa. ¿Qué ves?
fun main() {
    println("Today is sunny!)
}

Lo ideal es que se aparezca el mensaje Today is sunny!. En cambio, en el panel del resultado, verás íconos de signos de exclamación con mensajes de error.

Hay 2 mensajes de error de la ejecución del programa: Expecting ' " ' y Expecting ' ) '. Hay un signo de exclamación en un círculo rojo al lado de cada error.

Mensaje de error del Playground de Kotlin

Los mensajes de error comienzan con la palabra "Expecting" porque el compilador de Kotlin "espera" algo, pero no lo encuentra en el código. En este caso, el compilador espera una comilla de cierre y un paréntesis de cierre para el código en la segunda línea de tu programa.

En la sentencia println(), observa que el mensaje que se mostrará tiene comillas de apertura, pero no de cierre. Si bien el código tiene un paréntesis de cierre, el compilador cree que es parte del texto que se imprimirá porque no hay comillas de cierre antes.

  1. Agrega la comilla de cierre después del signo de exclamación, antes del paréntesis de cierre.
fun main() {
    println("Today is sunny!")
}

La función principal contiene una línea de código, que es una sentencia println(), donde el texto se encierra entre comillas y se coloca entre paréntesis:​​"Today is sunny!".

  1. Vuelve a ejecutar el programa.

No debería haber ningún error y el panel de resultados debería mostrar este texto:

Today is sunny!

¡Buen trabajo, corregiste el error! Una vez que obtengas más experiencia para escribir código y solucionar problemas, te darás cuenta de lo importante que es prestar atención al uso de mayúsculas, la ortografía, el espaciado, los símbolos y los nombres al momento de escribir código.

En la siguiente sección, trabajarás en una serie de ejercicios para practicar lo que aprendiste. Las soluciones se proporcionan al final del codelab, pero primero intenta encontrar la respuesta por tu cuenta.

9. Ejercicios

  1. ¿Puedes leer el código en este programa y adivinar el resultado (sin ejecutarlo en el Playground de Kotlin)?
fun main() {
    println("1")
    println("2")
    println("3")
}

Una vez que adivines, copia y pega este código en el Playground de Kotlin a fin de verificar la respuesta.

  1. Usa el Playground de Kotlin para crear un programa que genere los siguientes mensajes:
I'm
learning
Kotlin!
  1. Copia y pega este programa en el Playground de Kotlin.
fun main() {
    println("Tuesday")
    println("Thursday")
    println("Wednesday")
    println("Friday")
    println("Monday")
}

Corrige el programa para que imprima este resultado:

Monday
Tuesday
Wednesday
Thursday
Friday

A fin de obtener más información sobre cómo solucionar el problema con anticipación, corrige los errores en los siguientes ejercicios. En cada ejercicio, copia el código en el Playground de Kotlin en tu navegador. Intenta ejecutar el programa. Aparecerá un mensaje de error.

  1. Corrige el error de este programa para que produzca el resultado deseado.
fun main() {
    println("Tomorrow is rainy")

Resultado deseado:

Tomorrow is rainy
  1. Corrige el error de este programa para que produzca el resultado deseado.
fun main() {
    printLine("There is a chance of snow")
}

Resultado deseado:

There is a chance of snow
  1. Corrige el error de este programa para que produzca el resultado deseado.
fun main() {
    println("Cloudy") println("Partly Cloudy") println("Windy")
}

Resultado deseado:

Cloudy
Partly Cloudy
Windy
  1. Corrige el error de este programa para que produzca el resultado deseado.
fun main() (
    println("How's the weather today?")
)

Resultado deseado:

How's the weather today?

Después de completar estos ejercicios, compara tus respuestas con las soluciones de la siguiente sección.

10. Soluciones

  1. Este es el resultado del programa:
1
2
3
  1. El código del programa debería verse de la siguiente manera:
fun main() {
    println("I'm")
    println("learning")
    println("Kotlin!")
}
  1. Este es el código correcto del programa:
fun main() {
    println("Monday")
    println("Tuesday")
    println("Wednesday")
    println("Thursday")
    println("Friday")
}
  1. La llave de cierre que indica el final del cuerpo de la función de la función main no está en la tercera línea del programa.

Código correcto:

fun main() {
    println("Tomorrow is rainy")
}

Resultado:

Tomorrow is rainy
  1. Cuando ejecutes el programa, verás un error Unresolved reference: printLine. Esto se debe a que printLine() no es una función reconocida en Kotlin. También puedes ver la parte del código que hace que el error se destaque en rojo en el Playground de Kotlin. Cambia el nombre de la función a println para imprimir una línea de texto en el resultado, lo que corrige el error.

Código correcto:

fun main() {
    println("There is a chance of snow")
}

Resultado:

There is a chance of snow
  1. Cuando ejecutes el programa, verás un error Unresolved reference: println. En este mensaje, no se indica directamente cómo solucionar el problema. A veces, esto puede suceder cuando solucionas un error y es necesario que observes el código con más detalle para resolver el comportamiento inesperado.

Después de observar más de cerca, la segunda llamada a la función println() en el código es roja, lo que indica dónde está el problema. Kotlin espera una sola sentencia en cada línea. En este caso, puedes mover la segunda y tercera llamada a la función println() en líneas nuevas separadas para resolver el problema.

Código correcto:

fun main() {
    println("Cloudy")
    println("Partly Cloudy")
    println("Windy")
}

Resultado:

Cloudy
Partly Cloudy
Windy
  1. Si ejecutas el programa, verás el error Function 'main' must have a body. El cuerpo de una función debe encerrarse entre una llave de apertura y una llave de cierre { }, no paréntesis de apertura y cierre ( ).

Código correcto:

fun main() {
    println("How's the weather today?")
}

Resultado:

How's the weather today?

11. Conclusión

¡Felicitaciones por completar esta introducción a Kotlin!

Trabajaste con programas simples en Kotlin y los ejecutaste para ver el texto impreso en la salida. Modificaste los programas de diferentes maneras y observaste cómo esos cambios afectaron el resultado. Cuando programas, es normal cometer algunos errores. Es por eso que hoy también aprendiste a solucionar problemas en el código, que es una habilidad importante que te ayudará en el futuro.

Continúa con el siguiente codelab para aprender a usar variables en Kotlin a fin de que puedas crear programas más interesantes.

Resumen

  • Un programa de Kotlin requiere una función principal como punto de entrada del programa.
  • Para definir una función en Kotlin, usa la palabra clave fun seguida del nombre de la función, cualquier entrada encerrada entre paréntesis, seguida del cuerpo de la función entre llaves.
  • El nombre de una función debe seguir la convención de mayúsculas y minúsculas, y comenzar con una letra minúscula.
  • Usa la llamada a la función println() para imprimir texto en el resultado.
  • Consulta la guía de estilo de Kotlin para conocer las convenciones de código y formato que debes seguir cuando codifiques en Kotlin.
  • La solución de problemas es el proceso de resolver errores en tu código.

Más información