Comment définir un Groovy fonction qui accepte paramétrées, fermeture comme un paramètre?
Je veux définir une fonction qui accepte une autre fonction (la fermeture) en tant que paramètre.
La deuxième fonction doit accepter de 1 paramètre.
Actuellement, j'ai juste une simple signature:
def func1(func2) {
func2("string")
}
Est-il un moyen de spécifier explicitement, que func2
doit accepter de 1 paramètre (ou moins)?
OriginalL'auteur Roman | 2012-07-25
Vous devez vous connecter pour publier un commentaire.
Pas dans la définition de
func1
, mais vous pouvez vérifier lamaximumNumberOfParameters
pour une Fermeture au moment de l'exécution, comme suit:La réussite des tests:
Et l'échec:
Très bon point... mais j'ai dû envelopper mon petit exemple dans une classe étendant GroovyTestCase 🙁
OriginalL'auteur tim_yates
Ce code:
ne fonctionne que sur Groovy versions 1.1-beta-3 et plus tard.
Groovy 1.1-beta-2, 1.1-BETA-1, 1.0, 1.0-RC2, et 1.0-RC1 donner le message d'erreur:
Groovy 1.0-JSR-06 et avant de donner divers autres erreurs, en fonction de la version Groovy.
OriginalL'auteur Vorg van Geir