Я не уверен, когда именно мне нужно использовать оператор распространения точек. Если у меня есть список, такой как:
def animals = ['ant', 'buffalo', 'canary', 'dog']
Поскольку и animals
, и члены списка имеют метод size (), то для того, чтобы метод вызывался для элементов списка (а не для самого списка), мне нужно использовать:
animals*.size()
вместо:
animals.size()
Однако рассмотрим следующее выражение, которое возвращает список имен методов, доступных в классе String
String.metaClass.methods.name
Как Groovy узнает (без использования оператора точки смещения), что я хочу, чтобы свойство name
извлекалось из каждого элемента списка, возвращаемого String.metaClass.methods
, а не из самого списка? Существует ли набор правил для использования в этом случае, например:
- Если метод / свойство существует в List, вызывать его в List
- В противном случае попробуйте вызвать его для каждого элемента списка
Спасибо,
Дон