Es gibt zwei Möglichkeiten, Closures zu schreiben: mit expliziten Argumentnamen oder durch Bezugnahme auf die Argumente als $ 0, $ 1 etc.
Zum Beispiel sind diese beiden Dinge gleichwertig:
%Vor% Aber Sie können diese Dinge nicht mischen - entweder benennen Sie die Argumente oder Sie verwenden $n
. Du kannst nicht beides:
In Ihrem Beispiel sieht es so aus, als hätten Sie vergessen, der Methode filter
eine Schließung zu geben. Das bedeutet, dass sich Ihre
nicht innerhalb eines neuen Abschlusses ohne Argumente befindet - der Swift-Compiler denkt also, dass records
error
sich auf den äußeren Abschluss bezieht, der seine Argumente explizit als
und filter
()
angibt. Daher beschweren Sie sich, dass Sie in einer Closure mit expliziten Argumentnamen nicht auf Argumente als {}
verweisen können.
(Das Problem besteht natürlich darin, einen Abschluss für %code% zu liefern, also den %code% durch %code% zu ersetzen)