DEV Community

David Goyes
David Goyes

Posted on

Swift #18: Estructuras genéricas

Se puede definir una estructura genérica, definiendo el tipo de dato plantilla entre "angle-brackets" (i.e. <>) después del nombre de la estructura y antes de la llave que inicia el bloque de definición.

struct MyStructure<T> {
  var myValue: T
  func description() -> String {
    "El valor encapsulado es: \(myValue)"
  }
}
let intInstance = MyStructure<Int>(myValue: 1)
print(intInstance.description())

let stringInstance = MyStructure(myValue: "Hola")
print(stringInstance.description())
Enter fullscreen mode Exit fullscreen mode

Cuando se define intInstance, se especifica en tiempo de compilación el valor de T = Int dentro de "angle-brackets" (i.e. MyStructure<Int>). No obstante, también se puede dejar al compilador inferir el tipo como en el caso de stringInstance.

Igual que las funciones genéricas, las estructuras genéricas son realmente útiles cuando se restringe la plantilla con protocolos.

Top comments (0)