【问题标题】:How to search an Array containing struct elements in Swift?如何在 Swift 中搜索包含结构元素的数组?
【发布时间】:2014-10-29 04:22:10
【问题描述】:

在 String、Int 等类型的数组中查找元素非常简单。

var States = ["CA", "FL", "MI"]
var filteredStates = States.filter {$0 == "FL"} // returns false, true, false

现在,我创建了一个结构

struct Candy{
    let name:String
}

然后初始化它

var candies =  [Candy(name: "Chocolate"),
Candy(name: "Lollipop"),
Candy(name: "Caramel")]

谁能建议在包含结构元素的数组中找到“巧克力”的正确方法?我无法实现 find 或 filter 方法。

【问题讨论】:

    标签: ios arrays swift ios8


    【解决方案1】:

    使用以下代码,您将收到数组中与"Chocolate" 匹配的所有糖果结构。

    var candiesFiltered = candies.filter{$0.name == "Chocolate"}
    

    如果您只想要一个布尔值(是否已找到),您可以使用以下代码:

    var found = candies.filter{$0.name == "Chocolate"}.count > 0
    

    【讨论】:

    • 语法可以简化为filter { $0.name == ... },因为闭包是'尾随'。
    • 是否也可以使用动态字符串进行过滤?类似:var candiesFiltered = candies.filter{$0[customProperty] == "Chocolate"}
    • 我们可以用来||过滤器块内的运算符?我需要比较 fromString & toString
    猜你喜欢
    • 2020-03-25
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多