来自rawValues的Swift初始化数组

Dee*_*rma -4 enums ios swift

我有一个枚举的原始值数组。在Swift代码的一行中,是否可以从该原始值数组中创建一个枚举数组?

mag*_*ahr 5

它甚至可以更容易。

enum Fruit: String {
    case apple = "Apple"
    case banana = "Banana"
}

let rawValues = ["Banana", "Apple", "Apple", "Pig"]
let enums = rawValues.compactMap(Fruit.init)
Run Code Online (Sandbox Code Playgroud)

您只需提供带有init方法的compactMap即可,它将消除所有无法创建水果的情况