begegnete ich das gleiche vor einer Weile Fehler (aber dann mit ||
). Wenn Sie reduce
für diese verwenden möchten, ist die einfachste Lösung
let result = bools.reduce(true, combine: { $0 && $1 })
oder
let result = bools.reduce(true) { $0 && $1 }
statt zu schreiben. Wie in den Kommentaren darauf hingewiesen, können Sie auch
let result = !bools.contains(false)
verwenden Dies ist nicht nur besser lesbar, aber es ist auch effizienter, weil es bei der ersten Begegnung von false
anstatten Iteration über das gesamte Array (obwohl das stoppen Compiler könnte dies optimieren).
Ich schlage vor, dass Sie [hier] (http://stackoverflow.com/a/34699637/5654848) suchen. Es wird ausführlich erklärt. – Dershowitz123
Du kannst das einfach als 'let result =! Bools..contains (false)' schreiben, was mit Mehrdeutigkeit btw kompiliert :) Aber definitiv daran interessiert, warum das mehrdeutig ist. – Hamish