typestar

Protocolos y extensiones en Swift

Declara el requisito; comparte la implementación.

// A protocol states requirements; an extension supplies shared code.
protocol Signaling {
    var callSign: String { get }
}

extension Signaling {
    func hail() -> String { "\(callSign), \(callSign), race control" }
}

struct Yacht: Signaling {
    let callSign: String
}
// Extensions also add to types you do not own.
extension String {
    var flagged: String { "[FLAG] " + self }
}

let boat = Yacht(callSign: "Kestrel")
print(boat.hail())
print("black flag start".flagged)

Cómo funciona

  1. protocol Signaling exige una propiedad.
  2. Una extensión regala hail() a cada conformante.
  3. extension String agrega una propiedad a un tipo ajeno.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
465
Tokens
89
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 82 segundos.

Escribe este fragmento

Paso 1 de 3 en Abstracciones; paso 19 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →