Kann ich die optionale Bindung für mehrere Variablen in einer Zeile in Swift verwenden? [Duplikat]

8

Kann ich die optionale Bindung für mehrere Variablen in einer Zeile in Swift verwenden? Ich muss so etwas tun:

%Vor%     
FrozenHeart 24.11.2014, 16:50
quelle

4 Antworten

20

Update für Swift 1.2:

Ab Swift 1.2 (Xcode 6.3 Beta) können Sie mehrere Optionen mit if let :

auspacken %Vor%

Vor Swift 1.2

Sie können nicht mit if , aber Sie können mit switch mit " Wertbindungsmuster ":

%Vor%     
rintaro 24.11.2014, 17:00
quelle
6

Es ist ein wenig klobig, aber Sie können dies mit einem switch für ein Tupel Ihrer Variablen tun:

%Vor%

Die Zeit, die ich damit verbringe, bohrt sich in ein verschachteltes Wörterbuch, wie ein großes JSON-Objekt - es ist großartig, weil Sie jeden Fehlerfall separat behandeln können:

%Vor%     
Nate Cook 24.11.2014 17:00
quelle
2

Vor Swift 1.2

Ich verwende gerne die switch -Anweisung dafür, besonders wenn Sie die vier verschiedenen Fälle behandeln wollen.

Wenn Sie jedoch nur an dem Fall interessiert sind, in dem beide Optionen Some sind, können Sie das auch tun:

%Vor%

Wo dies die Definition der Funktion unwrap ist:

%Vor%

Weitere Überladungen: Ссылка

    
Tom Lokhorst 08.12.2014 19:06
quelle
0

Das ist eine sehr vernünftige Verbesserungsanfrage, aber wie die Dinge stehen, können Sie es nicht tun. Es gibt verschiedene Gründe, aber die Art, wie ich daran denke, ist einfach die folgende: if let ist wirklich ein Wort. Es sind zwei Wörter, aber die Kollokation if let bedeutet etwas Besonderes, als wäre es selbst ein Schlüsselwort. Für sich genommen hat if eine andere Bedeutung; an sich hat let eine andere Bedeutung. Daher können Sie später keine separate let in die Zeile einfügen.

Das Ergebnis ist, dass ich oft Kaskaden von verschachtelten if let -Klauseln bekomme. Ich bin mir sicher, dass der Grund für Ihre Frage darin besteht, dass Sie das auch tun und es vermeiden möchten. Aber du kannst nicht. Eine Alternative besteht darin, die if let ganz zu überspringen, die Optionals zu entfernen und zu hoffen, dass Sie nicht abstürzen, wenn einer von ihnen null ist.

    
matt 24.11.2014 16:57
quelle

Tags und Links