gpt4 book ai didi

swift - 使用 Swift 的枚举和数组

转载 作者:行者123 更新时间:2023-11-28 12:49:57 26 4
gpt4 key购买 nike

我已经声明了一个枚举

enum MenuItem {
case Item(String, Bool)
}

我有一个枚举数组

let menuList = [
MenuItem.Item("Title_1", true),
MenuItem.Item("Title_2", false),
MenuItem.Item("Title_3", true),

]

现在,如何从上面的数组中获取字符串数组?

["Title_1", "Title_2", "Title_3"]

最佳答案

如果你只是想从你的数组中过滤掉 Item 的情况,并从它们的关联值中得到一个字符串数组,你可以使用 flatMappattern matching 来做到这一点。例如:

// your array of enums
let menuList = [
MenuItem.Item("Title_1", true),
MenuItem.Item("Title_2", false),
MenuItem.Item("Title_3", true),
]

let arrayOfStrings:[String] = menuList.flatMap {

// if the element is of case .Item, return its string from the associated value
if case .Item(let str, _) = $0 {return str}

// else return nil (flatMap will filter out nil from the resultant array)
return nil
}

print(arrayOfStrings) // ["Title_1", "Title_2", "Title_3"]

虽然我不得不质疑你在这里使用枚举。如果它只有一种情况,结构会更合适(我不确定你是否为了这个问题简化了它)。

关于swift - 使用 Swift 的枚举和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36777568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com