Enumeración rápida
En Swift, una enumeración (abreviatura de enumeración) es un tipo de datos definido por el usuario que tiene un conjunto fijo de valores relacionados.
usamos el enum
palabra clave para crear una enumeración. Por ejemplo,
enum Season {
case spring, summer, autumn, winter
}
Aquí,
Season
– nombre de la enumeraciónspring/summer/autumn/winter
– valores definidos dentro de la enumeración
Nota: Los valores de enumeración también se denominan enumerar casos. Y, usamos el case
palabra clave para declarar valores dentro de la enumeración.
Crear variables de enumeración
Dado que enum es un tipo de datos, podemos crear variables de tipo enum. Por ejemplo,
var currentSeason: Season
Aquí, currentSeason
es un Season
variable tipo. Solo puede almacenar valores (spring
, summer
, autumn
, winter
) presente dentro de la enumeración.
Asignar valores a las variables de enumeración
Usamos el nombre de enumeración y el .
notación para asignar valores a una variable de enumeración. Por ejemplo,
// assign summer to currentSeason variable
var currentSeason = Season.summer
Aquí, hemos asignado el valor del miembro summer
a la variable de enumeración currentSeason
.
Ejemplo: enumeración rápida
// define enum
enum Season {
// define enum values
case spring, summer, autumn, winter
}
// create enum variable
var currentSeason: Season
// assign value to enum variable
currentSeason = Season.summer
print("Current Season:", currentSeason)
Producción
Current Season: summer
En el ejemplo anterior,
Season
– una enumeración con 4 valores:spring
,summer
,autumn
,winter
currentSeason
– variable de tipo de enumeracióncurrentSeason = Season.summer
– asigna valor de enumeración acurrentSeason
Nota: Similar a las variables, también podemos crear variables de enumeración y asignar valor en una sola línea. Por ejemplo,
var lastSeason = Season.spring
Enumeración rápida con declaración de cambio
También podemos usar una enumeración con una declaración de cambio en Swift. Por ejemplo,
enum PizzaSize {
case small, medium, large
}
var size = PizzaSize.medium
switch(size) {
case .small:
print("I ordered a small size pizza.")
case .medium:
print("I ordered a medium size pizza.")
case .large:
print("I ordered a large size pizza.");
}
Producción
I ordered a medium size pizza.
En el ejemplo anterior, hemos creado una enumeración llamada PizzaSize
con valores: small
, medium
, large
. Note la declaración,
var size = PizzaSize.medium
Aquí, estamos asignando el valor medium
a la variable de enumeración size
.
Hemos usado la variable enum size
dentro de switch
declaración. Y, el valor se compara con el valor de cada case
declaración.
Como el valor coincide con case .medium
se ejecuta la declaración dentro del caso.
Iterar sobre casos de enumeración
En Swift, usamos el CaseIterable
protocolo para iterar sobre una enumeración. Por ejemplo,
enum Season: caseIterable {
...
}
Ahora podemos usar el allCases
propiedad para recorrer cada caso de una enumeración.
for currentSeason in Season.allCases {
...
}
Ejemplo: iterar sobre casos de enumeración
// conform Languages to caseIterable
enum Season: CaseIterable {
case spring, summer, autumn, winter
}
// for loop to iterate over all cases
for currentSeason in Season.allCases {
print(currentSeason)
}
Producción
spring summer autumn winter
En el ejemplo anterior, hemos conformado el CaseIterable
protocolo con la enumeración Season
.
Entonces usamos el allCases
propiedad con el bucle for para iterar sobre cada caso de la enumeración.
Enumeraciones rápidas con rawValue
En Swift, también podemos asignar valores a cada caso de enumeración. Por ejemplo,
enum Size : Int {
case small = 10
case medium = 12
...
}
Aquí, hemos asignado valores 29 y 31 enumerar casos small
y medium
respectivamente. Estos valores se llaman valores brutos.
Tenga en cuenta que hemos utilizado Int
con nombre de enumeración para definir que los casos de enumeración solo pueden incluir valores sin formato enteros.
Acceder a los valores sin formato de enumeración
Para acceder al valor sin procesar de una enumeración, usamos el rawValue
propiedad. Por ejemplo,
// access raw value
Size.small.rawValue
Aquí hemos accedido al valor de la medium
caso.
Ejemplo: enumeraciones con valores sin procesar
enum Size : Int {
case small = 10
case medium = 12
case large = 14
}
// access raw value of python case
var result = Size.small.rawValue
print(result)
Producción
10
En el ejemplo anterior, hemos creado la enumeración llamada Size
que tiene un valor bruto de Int
escribe.
Aquí hemos accedido al valor de la small
caso usando el rawValue
propiedad.
Nota: Los valores brutos pueden ser cadenas, caracteres, enteros o tipos de números de punto flotante.
Valores asociados de enumeración Swift
En Swift, también podemos adjuntar información adicional a un caso de enumeración. Por ejemplo,
enum Laptop {
// associate value
case name(String)
...
}
Aquí, por el nombre caso, podemos adjuntar un Cuerda escriba valor.
Ahora, podemos asignar el valor asociado al caso.
Laptop.name("Razer")
Aquí, Razer
es el valor asociado de la name
caso.
Ejemplo: enumeración de valores asociados
enum Laptop {
// associate string value
case name(String)
// associate integer value
case price (Int)
}
// pass string value to name
var brand = Laptop.name("Razer")
print(brand)
// pass integer value to price
var offer = Laptop.price(1599)
print(offer)
Producción
name("Razer") price(1599)
En el ejemplo anterior, el valor asociado
Razor
se asigna a laname
caso.- 1599 se asigna a la
price
caso.
Para obtener más información sobre los valores asociados, visite Valor asociado de enumeración Swift.