streakode

Kotlin 2.4

Ejercicios de Kotlin sobre Funciones

7 ejercicios de Funciones en Kotlin. Piensa la respuesta antes de abrirla: la explicación dice por qué las demás opciones fallan.

  1. 1 · Elige la respuesta · nivel 1

    ¿Qué imprime este código?

    fun triple(n: Int): Int {    return n * 3} fun main() {    println(triple(5))}
    • A15
    • B8
    • C53
    • D5
    Ver la respuesta

    Respuesta: A. 15

    triple(5) recibe n = 5 y devuelve 5 * 3. Ese valor es el que imprime println.

  2. 2 · Elige la respuesta · nivel 1

    ¿Qué imprime este código?

    fun greet(name: String = "mundo") = "Hola, $name" fun main() {    println(greet())}
    • AHola, mundo
    • BHola, name
    • CHola,
    • DError: falta un argumento
    Ver la respuesta

    Respuesta: A. Hola, mundo

    Un parámetro con valor por defecto es opcional: si no se pasa, vale "mundo". Así Kotlin evita tener que escribir varias versiones de la misma función.

  3. 3 · Encuentra el fallo · nivel 1

    No compila: A 'return' expression required in a function with a block body. ¿Qué línea tiene el fallo?

    1fun add(a: Int, b: Int): Int {2    a + b3}4 5fun main() {6    println(add(2, 3))7}
    Ver la respuesta

    El fallo está en la línea 2: a + b Se arregla con return a + b.

    Con llaves, la función necesita un return explícito. Solo las funciones con cuerpo de expresión (fun add(a: Int, b: Int) = a + b) devuelven el valor sin escribir return.

  4. 4 · Completa el hueco · nivel 1

    Completa la declaración del punto de entrada del programa.

    ___ ___() {    println("Arrancando")}
    • fun
    • main
    • function
    • def
    Ver la respuesta

    Respuesta: fun · main

    fun main() {    println("Arrancando")}

    Las funciones de Kotlin se declaran con fun, y el programa empieza en la que se llama main. function es de JavaScript y def de Python.

  5. 5 · Ordena las líneas · nivel 1

    Ordena el código: declara la función, úsala y muestra el resultado.

    • fun square(n: Int) = n * n
    • fun square(n: Int) => n * n
    • println(result)
    • val result = square(7)
    Ver la respuesta

    El orden correcto:

    fun square(n: Int) = n * nval result = square(7)println(result)

    Sobran: fun square(n: Int) => n * n

    Una función con cuerpo de expresión se escribe con = y el compilador infiere el tipo de retorno. => no existe en Kotlin.

  6. 6 · Ordena las líneas · nivel 1

    Ordena el código: primero la función que saluda y después main, que la llama con "Ana".

    • greet("Ana")
    • }
    • fun greet(name: String) = println("Hola, $name")
    • fun main() {
    Ver la respuesta

    El orden correcto:

    fun greet(name: String) = println("Hola, $name")fun main() {    greet("Ana")}

    Una función de una sola línea se puede escribir con =, sin llaves. Los parámetros llevan el tipo detrás de dos puntos: name: String. main sí tiene bloque, así que la llamada va dentro de sus llaves.

  7. 7 · Elige la respuesta · nivel 2

    ¿Qué imprime este código?

    fun rect(width: Int, height: Int) = "$width x $height" fun main() {    println(rect(height = 2, width = 5))}
    • A5 x 2
    • B2 x 5
    • C5 x 5
    • DError: orden incorrecto
    Ver la respuesta

    Respuesta: A. 5 x 2

    Con argumentos nombrados el orden no importa: cada valor va al parámetro que dice su nombre. width vale 5 y height vale 2.

Más temas de Kotlin

Ver toda la ruta de Kotlin