«включать» функции в скрипты groovy

#groovy

#groovy

Вопрос:

Я пишу несколько скриптов на groovy. И мне нужно какое-то повторное использование кода в моих скриптах. Как я могу это сделать?

  1. Я могу поместить этот код в класс. Но вряд ли это для поддержки решения — часть кода находится в интерпретируемом скрипте, а другая — в скомпилированном классе
  2. Я могу использовать «оценивать», но мне нужно повторное использование функции, которая имеет возвращаемое значение. Я попытался «оценить» определения функций, и, похоже, это не работает.

Можете ли вы порекомендовать какой-либо подход к «включению» определений функций в скрипт?

Спасибо!

Ответ №1:

Нет необходимости компилировать groovy script, вы можете просто включить скрипт, определенный как класс.

Возьмите файл SomeClass.groovy

 class SomeClass {
    def add(a,b){
        return a b
    }
}
  

и скрипт someScript.groovy

 println(new SomeClass().add(1,1))
  

Это будет работать до тех пор, пока SomeClass.groovy находится в пути к КЛАССУ.

ПРАВКИ

 class SomeClass {
    def static add(a,b){
        return a b
    }
}
  

Вызов как:

 println(SomeClass.add(1,1))
  

Комментарии:

1. Отлично, спасибо! Могу ли я таким образом также вызывать функции вне класса?

2. @Pavel, если вы объявите метод add как статический, вы можете вызвать его без new. Это, вероятно, настолько близко, насколько вы можете получить. Смотрите правки.

3. Конечно, вы могли бы использовать класс в качестве дополнения. groovy.codehaus.org/Runtime mixins