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.

Dado que readLine() devuelve un String?, a menudo necesitarás 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 doble.

Para convertir una cadena en un entero, utiliza el inicializador Int(). Debido a que 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) // Resultado: 52
}

Para números decimales, utiliza 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 (unwrapping):

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

La coma en la sentencia if let significa que ambas condiciones deben tener éxito: la entrada debe existir y debe ser convertible a un entero.

challenge icon

Desafío

Fácil

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

Recibirás las siguientes entradas:

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

Usa readLine() para leer ambas entradas. Convierte la primera entrada a un Double y la segunda a un Int. Luego multiplícalos y muestra el resultado.

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

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

Hoja de referencia

Swift requiere una conversión de tipos explícita entre cadenas y números.

Para convertir una cadena a un entero, utiliza Int(). Devuelve un opcional porque la conversión podría fallar:

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

Para convertir una cadena a un número decimal, utiliza Double():

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

Puedes encadenar el desempaquetado de opcionales con readLine() usando una coma en if let. Ambas condiciones deben tener éxito:

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

Pruébalo tú mismo

// Leer el número decimal como una cadena
if let decimalString = readLine() {
    // Leer el entero como una cadena
    if let intString = readLine() {
        // TODO: Escribe tu código a continuación
        // 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