Ich verwende Swift 3.0 und diesen Code haben für als Erweiterung der String-Typ ein Element in einem Array suchen:Erhalten Sie eine kürzere Version der for-Schleife?
extension String {
func equal(compareToArray : [String]) -> Bool {
for s in compareToArray {
if self == s {
return true
}
}
return false
}
}
Es fein läuft, aber meine Frage ist, kann ich es besser machen (kürzer/einfacher oder schneller)?
Okay, eine andere ähnliche Probe:
func contains(compareToArray : [String]) -> Bool {
for s in compareToArray {
if self.contains(s) {
return true
}
}
return false
}
:-) Ja, du hast Recht. Ich fügte ein weiteres Beispiel hinzu, das nicht umgedreht werden sollte. :-) – Peter71
Ok, dieser Filter nimmt alle Array-Mitglieder, auch wenn das Ergebnis bereits wahr ist. Es ist kürzer, aber langsamer. Ich kann mich nicht entscheiden, welches besser ist. :-) Vielen Dank. – Peter71
Wie ist Ihr erstes Beispiel schneller als das OP? Schneller zu tippen, sicher, aber "contains" macht genau dasselbe unter der Haube. Auch Ihr zweites Beispiel durchläuft unnötigerweise die Gesamtheit von 'compareToArray', selbst wenn $ 0.contains (" oo ")' wahr zurückgibt. '' CompareToArray.contains {...} '' wäre besser :) – Hamish