2014-07-27 3 views
7

Ich versuche, die alle Funktion von Python zu swift zu kopieren, beginnend mit der Überprüfung für alle Nill-Elemente in einer Liste, aber ich habe eine harte Zeit zu prüfen, optional Artikel. Aus irgendeinem Grund kann ich eine optionale Zeichenkette (string zum Beispiel) senden und obwohl es sagt, es ist null, geht es immer noch durch eine if-Anweisung, die es außerhalb der Funktion nicht passiert. Irgendwelche Tipps, wie Sie mit dieser oder einer anderen Art und Weise umgehen können? Vielen Dank!Wie zu überprüfen, ob ein generischer Typ Null in Swift ist

func `all`<T>(array: [T]) -> Bool { 
    for item in array { 
     if item as Any? { 
      println(item) // Says Nil >.< 
     } 
     var test: T? = item 
     if test { 
      println("Broken") // Prints broken :(
     } 
    } 
    return true 
} 

var t: String? 
all([t]) 

Antwort

2

Es ist mir unklar, was genau Sie versuchen zu testen, aber vielleicht wird dies helfen.

Der Parameter an die Funktion sollte ein Array von optionals [T?]

Es kann auch von Vorteil sein werden direkt Elemente nil zu vergleichen. Der Vergleich könnte ähnlich wie die Funktion filter zu einem Abschluss abstrahiert werden.

func all<T>(array: [T?]) -> Bool { 
    for element in array { 
     if element==nil { 
      return false 
     } 
    } 
    return true 
} 
Verwandte Themen