Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Что означает подчеркивание в данном случае?

Автор вопроса: Ulli HОтветов: 1

мой код перед переходом на Swift 2.0:

   override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "RhymeFavoriten") {
        // pass data to next view
        let dest = segue.destinationViewController as! FavoritenViewController
        let source = segue.sourceViewController as! RhymeViewController // !!!!!!
        dest.favoritenType = 1
        dest.delegate = self
    }
}

миграция сказала мне изменить его на

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "RhymeFavoriten") {
        // pass data to next view
        let dest = segue.destinationViewController as! FavoritenViewController
        _ = segue.sourceViewController as! RhymeViewController // !!!!!!!!!!
        dest.favoritenType = 1
        dest.delegate = self
    }

or

    func textSelected(selectedText:String, selectedType:Int) {
        var fullTextArr = text.componentsSeparatedByString("\n")
        var myArray = [String]()  // !!!!!!

to

    func textSelected(selectedText:String, selectedType:Int) {
        var fullTextArr = text.componentsSeparatedByString("\n")
        _ = [String]()    // !!!!!!!!!

Я не вижу, что означает _ = :-(

syntaxswift2

Ответы

Ответ 1 · рейтинг 9 · Eric Aya

_ является заполнителем. Это означает, что значения, присвоенные _, игнорируются.

Инструмент миграции Xcode внес эти изменения, поскольку обнаружил, что вы нигде не использовали source или myArray, поэтому заменил эти переменные заполнителем.

Теперь вместо того, чтобы присваиваться переменной, возвращаемый результат segue.sourceViewController as! RhymeViewController и возвращаемый результат [String]() игнорируются.

Возвращаемый результат игнорируется, но выражение по-прежнему оценивается во время выполнения: если оно имеет побочные эффекты, эти эффекты будут иметь место.

Поэтому, если вам на самом деле не нужны эти инструкции, вы должны полностью избавиться от них.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы