La beauté de Groovy est sa nature dynamique. Si vous avez besoin de la fonctionnalité, mais ce n'est pas là, ajoutez-le! Quelque part dans un point d'entrée pratique pour votre application ou dans un bloc statique dans la classe qui en a besoin, ajoutez le code soulevé directement à partir des sources 1.7.3+:
String.metaClass.'static'.tr = { String text, String source, String replacement ->
if (!text || !source) { return text }
source = expandHyphen(source)
replacement = expandHyphen(replacement)
// padding replacement with a last character, if necessary
replacement = replacement.padRight(source.size(), replacement[replacement.size() - 1])
return text.collect { original ->
if (source.contains(original)) {
replacement[source.lastIndexOf(original)]
} else {
original
}
}.join()
}
String.metaClass.'static'.expandHyphen = { String text ->
if (!text.contains('-')) { return text }
return text.replaceAll(/(.)-(.)/, { all, begin, end -> (begin..end).join() })
}
String.metaClass.tr = { String source, String replacement ->
String.tr(delegate, source, replacement)
}
La bonne chose à ce sujet est à chaque fois que vous peut mettre à jour à 1.7.3, vous pouvez simplement supprimer cette méta-magie et vous n'aurez pas besoin de changer vos autres sources.
Delphyne, qui démontre la beauté de pourquoi plus de têtes valent mieux qu'une. Je suis encore un peu nouveau chez Groovy, que j'utilise chez Filemaker, et je ne faisais que regarder cela sur une seule avenue, et bien sûr, ça marche. Je dois devenir plus au fait des docs et du code source. BEAUCOUP merci de votre contribution. –
Où dois-je aller pour jeter un coup d'oeil à la source afin que je puisse commencer à étendre mon apprentissage? –
Les sources peuvent être téléchargées à côté des fichiers binaires [1]. L'astuce est qu'il peut être non évident de comprendre où les choses sont mises en œuvre. Dans le code que j'ai posté ci-dessus, les méthodes statiques 'tr' et 'expandHyphen' existent dans une classe appelée StringUtils, tandis que la méthode 'tr' d'instance existe dans DefaultGroovyMethods. [1] http://groovy.codehaus.org/Télécharger –