Swift: невозможно преобразовать значение типа '()' в указанный тип при инициализации - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть 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] enter image description here Кто-нибудь из вас знает, почему я получаю эту ошибку или если вы знаете обходной путь?

Я буду очень признателен за вашу помощь.

1 Ответ

2 голосов
/ 02 апреля 2020

removeAll не возвращает значение. Это то же самое, что возвращать Void, что то же самое, что и ().

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

Еще лучше, даже не используйте его.

init(someStuff: [String]) {
  listOfStuff = someStuff.filter { $0 != "myName" }
}
...