Ссылка на переменную в Groovy GString - PullRequest
0 голосов
/ 29 марта 2010

Из книги «Рецепты Groovy и Grails» я использую следующий фрагмент кода:

String HelloLanguage = "def hello(language) {return \"Hello $language\"}"

Однако я получаю сообщение об ошибке компилятора: «Вы пытались ссылаться на переменную в привязке или переменную экземпляра из статического контекста». потому что язык не может быть связан. Что не так?

Ответы [ 2 ]

1 голос
/ 29 марта 2010

Я не слишком знаком с Groovy. Я только что попробовал вашу строку в GroovyConsole и получил исключение - после выхода из доллара все прошло нормально. Может ли это быть?

String HelloLanguage = "def hello(language) {return \"Hello \$language\"}"

0 голосов
/ 30 марта 2010

Это странная конструкция. К сожалению, у меня нет книги, но похоже, что вы делаете строку из того, что похоже на определение метода. Принимая это к логическому следующему шагу, базовый класс Groovy может выглядеть примерно так

class Talker {

      def  hello(language) { return "Hello ${language} !" } 

}

def talker = new Talker()
talker.hello("English")  // prints: Hello English!
...