Ejercicios Resueltos Capítulo 18 El Libro de Swift
Ejercicios Resueltos Capítulo 18 El Libro de Swift

Ejercicios Resueltos Capítulo 18

SwiftBeta

Tabla de contenido


👇 SÍGUEME PARA APRENDER SWIFTUI, SWIFT, XCODE, etc 👇

Aquí encontrarás todas las respuestas del capítulo 18

/*
 EJERCICIO 1, usamos el operador is para comprobar el tipo de una instancia
 */

let myNumber = 5000

if myNumber is Int {
    print("myNumber is a number")
}


/*
 EJERCICIO 2, usamos el operador as para convertir una instancia de un tipo a otro
 */

let someString: Any = "Hello, world!"
let castedString = someString as! String
print(castedString)

let maybeInteger: Any = "123"
let castedInteger = maybeInteger as? Int
print(castedInteger)

let definitelyInteger: Any = 123
let forcefullyCastedInteger = definitelyInteger as! Int
print(forcefullyCastedInteger)


/*
 EJERCICIO 3
 
 as?: Este es un tipo de casting condicional que intenta convertir un tipo en otro y devuelve un valor opcional. Si el casting no tiene éxito, devuelve nil.
 
 as!: Este es un tipo de casting forzado que intenta convertir un tipo en otro y fallará con un error de tiempo de ejecución si el casting no tiene éxito.
 */


/*
 EJERCICIO 4, usamos el operador as para convertir una instancia de un tipo a otro
 */

protocol Animal {
    func makeSound()
}

class Dog: Animal {
    func makeSound() {
        print("Woof!")
    }
}

class Cat: Animal {
    func makeSound() {
        print("Meow!")
    }
}

let animals: [Animal] = [Dog(), Cat()]

for animal in animals {
    animal.makeSound()
    
    // Type Casting
    if let dog = animal as? Dog {
        print("This is a dog.")
    } else if let cat = animal as? Cat {
        print("This is a cat.")
    }
}