Groovy-Verschluss mit optionale Argumente
Möchte ich definieren, eine Schließung, das ein argument (dem ich spreche, mit it
)
manchmal möchte ich weitergeben ein weiteres argument für die Schließung.
wie kann ich dies tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konnten Sie das zweite argument ein default-Wert (z.B. null):
Andere option wäre, um
b
eine vararg-Liste in etwa so:@TypeChecked
🙁 - mit@TypeChecked(value=TypeCheckingMode.SKIP)
funktioniert es wieder ... gleiche mit varargs-versionhoffentlich hilft
Den Varianten aus @tim_yates arbeiten nicht mit
@TypeChecked
(im Kontext einer Klasse), die zumindest mitGroovy 2.4.11
wo die Standard-arg ignoriert und nicht kompilieren 🙁Damit andere (zugegeben hässlicher) - Lösungen, die funktionieren würde, in diesem Fall:
erklärt die Schließung ersten scheint gut zu funktionieren (notwendig für rekursionen sowieso):
mit
@TypeChecked(value=TypeCheckingMode.SKIP)
, es würde für beide, aber dann würden Sie Locker die Typprüfung auf die Methode (oder Klasse, je nachdem, wo Sie es ausdrückte)erklären Schließung delegieren
cl2
:verwandeln Schließung in Klasse Methode, z.B.