0

我有 Struct init,我正在尝试过滤 init 中的数组:

public struct doSomething: Codable {
    public var listOfStuff: [String]

    init(someStuff: [String]) {
        var clone = someStuff
        let stuff: [String] = clone.removeAll { $0 == "myName"}
        listOfStuff = stuff
    }
}

在这一行let stuff: [String] = clone.removeAll { $0 == "myName"}我收到此错误:

error: cannot convert value of type '()' to specified type '[String] 在此处输入图像描述 你们中的任何人都知道为什么我会收到此错误,或者您是否知道解决方法?

我会非常感谢你的帮助。

4

1 回答 1

3

removeAll不返回值。这与返回是一回事,与返回Void是一回事()

clone.removeAll { $0 == "myName" }
listOfStuff = clone

更好的是,甚至不要使用它。

init(someStuff: [String]) {
  listOfStuff = someStuff.filter { $0 != "myName" }
}
于 2020-04-02T00:23:05.880 回答