Menu
Coddy logo textTech

Validación con Require

Parte de la sección Lógica y flujo del Journey de Kotlin de Coddy. Lección 54 de 63.

require(condition) comprueba el contrato de un argumento de función. Si la condición es false, lanza IllegalArgumentException. Una lambda final puede proporcionar un mensaje de error. Capturar ese error esperado en quien realiza la llamada permite convertir una entrada no válida en un resultado definido.

fun ticketCost(count: Int): Int {
    require(count >= 0) { "count must be nonnegative" }
    return count * 5
}

Dentro de main:

try {
    println(ticketCost(-2))
} catch (error: IllegalArgumentException) {
    println("invalid")
}

El requisito de argumento no cumplido lanza una excepción antes de que se calcule el costo.

require lanza IllegalArgumentException cuando su condición es false.

challenge icon

Desafío

Intermedio

Completa validatedCost con parámetros count: Int. Usa el asistente de costos proporcionado, que requiere un recuento no negativo. Devuelve el costo como una cadena si la operación tiene éxito, o invalid si se lanza IllegalArgumentException. count está entre -1000 y 1000.

A menos que se indiquen límites más estrictos arriba, las colecciones contienen como máximo 100 elementos en cada nivel, y los argumentos enteros y los valores enteros de las colecciones están entre -1000 y 1000. El texto proporcionado para el análisis puede incluir representaciones no válidas o fuera de rango, según se describe.

Devuelve un valor de tipo String. Conserva el código de entrada/salida proporcionado. Este lee los argumentos escalares, uno por línea; una lista comienza con su cantidad, seguida de sus elementos, y un mapa comienza con su cantidad de entradas, seguida de cada clave y valor. Las listas anidadas repiten el formato de cantidad y elementos para cada fila. El main proporcionado imprime el valor devuelto seguido de un salto de línea. Las listas usan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.

Pruébalo tú mismo

fun cost(count: Int): Int {
    require(count >= 0) { "count must be nonnegative" }
    return count * 5
}
fun validatedCost(count: Int): String {
    // Escribe tu solución aquí.
    return ""
}
fun main() {
    val count = readln().toInt()
    println(validatedCost(count))
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Playground de Kotlin