Как проверить, что множественная строка не равна нулю и не пуста в Swift 5? - PullRequest
2 голосов
/ 26 мая 2020

Я хочу проверить несколько строк в условии if, если они не nil и не пустые.

сейчас я делаю как

  func isSetupDone(token1: String?, token2: String?, token3: String?) -> Bool{

        if token1 == nil || token1!.isEmpty || token2 == nil  || token2!.isEmpty || token3 == nil || token3!.isEmpty {
            return false
        }
        else{
            return true
        }
    }

, но я думаю, что должен быть лучший способ делает это быстро 5. Пожалуйста, предложите, если есть

Ответы [ 2 ]

3 голосов
/ 26 мая 2020

Вы можете добавить все String s к Array и вызвать allSatisfy в этом массиве.

func isSetupDone(token1: String?, token2: String?, token3: String?) -> Bool {
    let tokens = [token1, token2, token3]
    return tokens.allSatisfy { $0 != nil && $0?.isEmpty == false }
}

Вы также можете объединить два условия в одно, опционально связав дополнительные строки, поскольку $0?.isEmpty == false будет оценивать как false в случае, если $0 равно nil.

func isSetupDone(token1: String?, token2: String?, token3: String?) -> Bool {
    [token1, token2, token3].allSatisfy {$0?.isEmpty == false }
}
0 голосов
/ 26 мая 2020

Простой l oop и опциональная проверка

func isSetupDone(token1: String?, token2: String?, token3: String?) -> Bool{
    let array = [token1, token2, token3]
    for case let element in array {
        if let element = element , !element.isEmpty {
            // do nothing
        } else {
            return false 
        }
    }
    return true 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...