Extensions
Clase 33 de 46 • Curso de Swift 4 2018
Contenido del curso
Sebastián Barre
Edgar Rodriguez
Edgar Rodriguez
Diego Gerardo Corbinaud Castañeda
Omar Jalil Fierro López
Considero que un grave problema con este curso en el zoom del IDE, hay momentos en los que solo se aprecian 10 líneas de código, especialmente cuando está el terminal abierto. En las primeras clases no hay mucho problema ya que son pocas líneas de código con cambios fáciles de reconocer, pero en clases más avanzadas mas o menos desde el bloque de protocolos se realizan cambios en muchos lugares a la vez lo cual puede llegar a confundir bastante, ya que son más de 200 líneas de código en un solo archivo.
De acuerdo, y lo que sucede es que el profesor no explica bien las sintaxis sino que hace cambios y como dice una cosa dice otra y cree que uno entiende y no..
Podría por favor explicar conceptualmente qué son las extensiones, mostrar y explicar la sintaxis?? no entiendo porqué dice que vamos a trabajar más profundamente las extensiones y es el primer capítulo en el que las vamos a ver.
Una extension es una forma de agregarle una funcionalidad a una clase, estructura, protocolo, etc.
su sintaxis es muy simple ya que es básicamente
extension "A lo que quiero agregarle una funcionalidad"{ func someName{ return }
var x { return }
}
y se emplea:
something.someName someting.x
ejemplo:
supongamos que yo trabajare con distancias en metros pero las puedo convertir a km, cm, mm, etc. Para esto extenderé la clase Double para agregarle nuevas funcionalidades
extension Double { var km: Double { return self * 1_000.0 } var m: Double { return self } var cm: Double { return self / 100.0 } var mm: Double { return self / 1_000.0 } var ft: Double { return self / 3.28084 } }
con esto yo puedo hacer lo siguiente:
let twoKilometers = 2.km print("Two kilometers are (twoKilometers) meters") // prints "Two kilometers are 2000 meters"
(el self hace referencia al elemento en el que se aplica la funcionalidad de la extension EJ: 2.km -> self = 2 53.ft -> self = 53 )
Alguien me puede explicar bien los delegates por favor?