[Xcode / Swift5] Hinweis "Ausdruck nach 'Rückkehr' wird als Argument der 'Rückkehr' behandelt", das nach der Rückkehr unbeabsichtigt ausgeführt wird.

Die Entwicklungsumgebung ist Xcode 12.1.

Während des Debuggens kann etwas mitten im Prozess eine "Rückkehr" verursachen.

func hoge(){
    print("A")
    return
    print("B")
    print("C")
}

Natürlich wird print (" A ") ausgeführt. Schockierend ist also, dass "print (" B ")" ** ausgeführt ** wird.

Warum? ?? ?? ?? ?? ??

Ich stieß in komplexerem Code auf eine ähnliche Situation und machte mir etwa 20 Minuten Sorgen. Es gibt jedoch tatsächlich eine Warnung. Aufgrund des komplizierten verschachtelten Codes wurde die Warnung nicht im Volltext angezeigt, und ich habe sie nicht gelesen und dachte: "Natürlich heißt es, dass Code nach der Rückkehr niemals ausgeführt wird." Das war eine große Sache.

Expression following 'return' is treated as an argument of the 'return'

Mit anderen Worten, der nächste Teil von "return" wird als Rückgabewert interpretiert. In der Tat gibt print (" B ") Voidzurück. Der Rückgabewert der Funktionhoge ist ebenfalls Void`. Die Interpretation ist also richtig. Mit anderen Worten wird der Code am Anfang wie folgt interpretiert.

func hoge() -> Void {
    print("A")
    return print("B")
    print("C")
}

Deshalb wird print (" B ") aufgerufen. Ich habe den Code nicht in diesem Sinne geschrieben ...

Ich las die Warnung, ohne sie zu ignorieren, und ich wollte gehorsam kommentieren, ohne an seltsamen Stellen "return" zu schreiben.

Recommended Posts

[Xcode / Swift5] Hinweis "Ausdruck nach 'Rückkehr' wird als Argument der 'Rückkehr' behandelt", das nach der Rückkehr unbeabsichtigt ausgeführt wird.
Was ist schneller, Größe oder 0, als Argument von List # toArray?