No estoy seguro de cuándo exactamente necesito usar el operador de puntos extendidos. Si tengo una lista como:Groovy spread-dot operator
def animals = ['ant', 'buffalo', 'canary', 'dog']
Debido a que ambos animals
y los miembros de la lista tienen un método size(), a continuación, con el fin de tener el método invocado en los elementos de la lista (en lugar de la lista en sí), tengo que usar:
animals*.size()
en lugar de:
animals.size()
Sin embargo, tenga en cuenta la siguiente expresión que devuelve una lista de los nombres de los métodos que están disponibles en t que la clase String
String.metaClass.methods.name
¿Cómo sabe maravilloso (sin utilizar el operador de difusión-punto) que yo quiero la propiedad name
a ser recuperada de cada elemento de la lista devuelta por String.metaClass.methods
, en lugar de la propia lista? ¿Hay un conjunto de reglas para usar en este caso como:
- Si el método/propiedad existe en la lista, lo invocan en la Lista
- De lo contrario tratar de invocarlo para cada elemento de la lista
Gracias, Don
Es mágico. – Randolpho