Menu
Coddy logo textTech

Conversión de tipos

Parte de la sección Fundamentos del Journey de Swift de Coddy. Lección 34 de 86.

Como readLine() devuelve un String?, a menudo tendrás que convertir esa cadena en un número para realizar cálculos. Swift requiere una conversión de tipos explícita. No convertirá automáticamente una cadena en un entero o un número de doble precisión.

Para convertir una cadena en un entero, utiliza el inicializador Int(). Como la conversión podría fallar (la cadena podría contener letras en lugar de dígitos), devuelve un opcional:

let input = "42"
if let number = Int(input) {
    print(number + 10) // Salida: 52
}

Para los números decimales, usa Double():

let priceString = "19.99"
if let price = Double(priceString) {
    print(price * 2) // Salida: 39.98
}

Esto es especialmente útil al combinar readLine() con operaciones numéricas. Puedes encadenar el desempaquetado:

if let input = readLine(), let age = Int(input) {
    print("Next year you'll be \(age + 1)")
}

La coma en la instrucción if let significa que ambas condiciones deben cumplirse: la entrada debe existir y debe poder convertirse en un entero.

challenge icon

Desafío

Fácil

Lee dos entradas: un número decimal como cadena y un entero como cadena. Conviértelos a sus tipos numéricos correspondientes y calcula su producto.

Recibirás las siguientes entradas:

  • Primera línea: Un número decimal (por ejemplo, "3.5")
  • Segunda línea: Un entero (por ejemplo, "4")

Usa readLine() para leer ambas entradas. Convierte la primera entrada a Double y la segunda a Int. Después, multiplícalas y muestra el resultado.

Usa if let con vinculación opcional encadenada para desenvolver de forma segura tanto la entrada como el valor convertido.

Imprime: El producto de los dos números como un Double

Pruébalo tú mismo

// Lee el número decimal como una cadena
if let decimalString = readLine() {
    // Lee el entero como una cadena
    if let intString = readLine() {
        // TODO: Escribe tu código debajo
        // Convierte decimalString a Double e intString a Int usando if let
        // Luego calcula e imprime su producto
        
    }
}
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 Fundamentos

Practica por tu cuenta: Playground de Swift