Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

122
Vistas
Tipo de parámetro de enumeración de función

Soy nuevo en Swift. Tengo más de 2 enumeraciones y me gustaría crear enumeraciones para la función de generador de objetos. No pude encontrar qué tipo debería usar para el parámetro Enum en mi función.

Mis enumeraciones;

 public enum Animal: String, CaseIterable { case DOG = "dog" case CAT = "cat" case BIRD = "bird" } public enum Car: String, CaseIterable { case BMW = "bmw" case AUDI = "audi" }

mi función;

 func enumToObj(Enum:TYPE?) -> Dictionary <String, String> { var enumsObject: [String:String] = [:]; for enumData in Enum.allCases { let value = enumData.rawValue; enumsObject[value] = value; } return enumsObject; } //my expectation enumToObj(Animal) && enumToObj(Car)
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede definir una función genérica que tome como argumento un tipo que sea CaseIterable y RawRepresentable :

 func enumToObj<T>(_ Enum:T.Type) -> [String: T.RawValue] where T: CaseIterable & RawRepresentable { var enumsObject: [String: T.RawValue] = [:]; for enumData in Enum.allCases { let value = enumData.rawValue; enumsObject["\(enumData)"] = value; } return enumsObject; } print(enumToObj(Animal.self)) // ["CAT": "cat", "DOG": "dog", "BIRD": "bird"] print(enumToObj(Car.self)) // ["AUDI": "audi", "BMW": "bmw"]

Usando reduce(into:_:) esto también se puede escribir como

 func enumToObj<T>(_ Enum:T.Type) -> [String: T.RawValue] where T: CaseIterable & RawRepresentable { return Enum.allCases.reduce(into: [:]) { (enumsObject, enumData) in let value = enumData.rawValue; enumsObject["\(enumData)"] = value; } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda