A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Enumerations, clase vaga

13/16
Recursos

Aportes 14

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Un peque帽o truco para que Swift escriba todos los cases por nosotros.

enum myMusic {
    case Jazz
    case Clasic
    case Bachata
    case Salsa
    case RYB
    case Regueton
    case Rock
    case Rap
}

var music = myMusic.Jazz

switch music {
}

Forzamos el error al solamente escribir que haremos un switch en el enumerado de music
Esperamos un poco para que aparezca el error.

Oprimimos fix y automaticamente creara todos los cases que tengamos en nuestro enumerado.

switch music {

case .Jazz:
    <#code#>
case .Clasic:
    <#code#>
case .Bachata:
    <#code#>
case .Salsa:
    <#code#>
case .RYB:
    <#code#>
case .Regueton:
    <#code#>
case .Rock:
    <#code#>
case .Rap:
    <#code#>
}

Esto funciona con las 2 formas de hacer enumerados, en un solo caso y con casos individuales.

Tener cuidado que en este ejemplo si usamos 茅l allCase con la inicializada en may煤scula el c贸digo no va a funcionar, porque va requerir un valor que represente a todos los valores de ese tipo

enum DailyRoutine: CaseIterable {
    case wakeUp
    case breackfast
    case study
    case lunch
    case code
    case snack
    case moreCode
    case dinner
    case moreMoreCode
    case moreMoreMoreCode
    case goToBed
}
for routine in DailyRoutine.allCases {
    print(routine)
}```

Resumen

Definici贸n de la sintaxis:


enum SomeEnumeration {
    // Definicion de un enumeration
}

Podemos definir cada uno en un case por separado o en una sola l铆nea.

Luego puedo acceder a cada case con .north, por ejemplo, porque Swift sabe que la variable directionToGo es del tipo CompassPoint.


enum CompassPoint {
    case north
    case south
    case east
    case west
}

enum Planet {
    case mercury, venus, earth, mars, jupiter, uranus, neptune
}

var directionToGo = CompassPoint.east
directionToGo = .south

Ejemplos:


switch directionToGo {
case .north:
    print("Hay que ir al norte")
case .south:
    print("Hay pinguinos en el sur")
case .east:
    print("Mordor se extiende hacia las tierras del este")
case .west:
    print("Cuidado con los vaqueros")
}

let somePlanet = Planet.earth
switch somePlanet {
case .earth:
    print("La tierra es segura")
default:
    print("No es segur ir a ese planeta")
}

Si queremos recorrer lo elementos de un enumeration, tenemos que usar un protocolo llamado CaseIterable.

Los protocolos nos permiten delegar funcionalidades.


enum Beverage: CaseIterable {
    case coffee, tea, juice, redbull
}
let numberOfChoices = Beverage.allCases.count

for beverage in Beverage.allCases {
    print(beverage)
}

para poder extraer el numero de casos de un enum, poder utilizar allCases e igual poder realizar un switch hay que hacerlo por separado, una constante para la el conteo de casos y una variable para los casos en el switch; esto debido a que podr铆an ser de distintos tipos, en este caso al pasar por el switch se vuelve String y al realizar el conteo de tipo num茅rico


enum GeneroMusical: CaseIterable {
case banda, rock, reggaeton, clasica, reggae, salsa, bachata
}
var genMusical = GeneroMusical.banda
genMusical = .bachata
switch genMusical {
case .banda:
print(鈥淓l papel cambi贸 - El komander鈥)
case .clasica:
print(鈥淣octurne in C minor - Chopin鈥)
case .reggae:
print(鈥淛ammin - Bob Marley鈥)
case .reggaeton:
print(鈥淵 nos fuimos hasta abajo - Daddy Yankey鈥)
case .rock:
print(鈥淏ohemian Rhapsody -Queen鈥)
case .salsa:
print(鈥淭e va a Doler - Gilberto Santa Rosa鈥)
case.bachata:
print(鈥淟a mejor version de mi - Natti Natasha feat Romeo Santos鈥)
}

let numGenMus = GeneroMusical.allCases.count
enum PublicTransport : CaseIterable{
    case bus, metro, trolleyCar, train, taxi, uber
}

for publicTransport in PublicTransport.allCases{
    print(publicTransport)
}
//reto
enum aplicationsIUse: CaseIterable {
    case Bank, Whatsapp, Brave, mail
}

enum Footwear: CaseIterable {
    case sneakers, shoes, sandals, slippers
}

let numberOfFootwear = Footwear.allCases.count

for footwear in Footwear.allCases {
    print(footwear)
}
enum MusicalGenre: CaseIterable {
    case Rock, Pop, Metal, Cumbia, Reggaeton, Salsa, Electronica
}

for musicGen in MusicalGenre.allCases{
    print(musicGen)
}```
import UIKit

enum Week {
    case sunday, monday, tuesday, wednesday, thursday, friday, saturday
}

let today = Week.saturday
//Reto
enum NotasMusicales: CaseIterable
{
    case A, B, C, D, E, F, G
}

for notas in NotasMusicales.allCases
{
    print(notas)
}
print("N煤mero de notas: \(NotasMusicales.allCases.count)")
//OUTPUT: A B C D E F G
//N煤mero de notas: 7

Sobre lo de ser inclusivo al pedir al usuario su g茅nero, os quiero recordar que ahora mismo la convenci贸n m谩s adoptada es 鈥淗ombre, Mujer, No Binario, Prefiero no especificarlo鈥. 鈥淚ndefinido鈥 no ser铆a correcto ya que su g茅nero s铆 est谩 definido, solo que no es hombre ni mujer. Poco a poco todos tenemos que trabajar y aprender para hacer de esta industria un lugar cada vez m谩s inclusivo y acogedor con todo el mundo 馃槂

隆Un saludo a todos!

enum MartialArts: CaseIterable {
    case muayThai, Karate, Judo, kickBoxing, Box, JuJitsu
}

//let martialArts = MartialArts.allCases.count

for martialAert in MartialArts.allCases {
    print(martialAert)
}