Ejercicios Resueltos del capítulos 15 del Libro de Swift
Ejercicios Resueltos del capítulos 15 del Libro de Swift

Ejercicios Resueltos Capítulo 15

Resultado de los ejercicios de El Libro de Swift. Aquí están los resultados del capítulo 15 donde profundizamos los conceptos de lo que hemos aprendido durante el capítulo.

SwiftBeta

Tabla de contenido


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

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

5 ejercicios

/*
 EJERCICIO 1, creamos una extensión en el tipo Int y añadimos un método para comprobar si el número es par
 */

extension Int {
    func isEvent() -> Bool {
        self % 2 == 0
    }
}

print(4.isEvent())
print(5.isEvent())


/*
 EJERCICIO 2, creamos una extensión de String para concatenar el valor con un parámetro de entrada, en este caso mi nombre
 */

extension String {
    func concatenate(name: String) -> String {
        return self + name
    }
}

print("Suscríbete al canal de ".concatenate(name: "SwiftBeta"))


/*
 EJERCICIO 3, para arreglar el código debemos usar una propiedad computada
 */

class APIClient {
    var endpoint: String
    
    init(endpoint: String) {
        self.endpoint = endpoint
    }
}

extension APIClient {
    var path: String {
        "/v2/aprende-swift"
    }
}

let apiClient = APIClient(endpoint: "swiftbeta.com/posts")
print(apiClient.path)


/*
 EJERCICIO 4, creamos varios inicializadores dentro de la extensión. Aquí lo importante es entender que podemos crear inicializadores en la extensión.
 */

struct Comic {
    let name: String
    let numberOfPages: Int
}

extension Comic {
    init(numberOfPages: Int) {
        self.name = "Ironman"
        self.numberOfPages = numberOfPages
    }
    
    init(name: String) {
        self.name = name
        self.numberOfPages = 0
    }
}


/*
 EJERCICIO 5, conformamos el protocolo CaseIterable en el enum
 */

enum Devices {
    case laptop
    case iPhone
    case iPad
    case appleWatch
}

extension Devices: CaseIterable { }

Devices.allCases.forEach {
    print($0)
}