代码之家  ›  专栏  ›  技术社区  ›  Maurits Rijk

groovy gstring中的变量引用

  •  0
  • Maurits Rijk  · 技术社区  · 14 年前

    在“groovy和grails食谱”一书中,我使用了以下代码片段:

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

    但是,我得到一个编译器错误“您试图引用绑定中的变量或静态上下文中的实例变量。”因为 语言 无法绑定。怎么了?

    2 回复  |  直到 14 年前
        1
  •  1
  •   ccheneson    14 年前

    我对groovy不太熟悉,我只是在groovyconsole中尝试了你的字符串,但我得到了一个例外——逃离美元后,它运行良好。可能是吗?

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

        2
  •  0
  •   Dónal    14 年前

    这是一个奇怪的结构。不幸的是,我没有这本书,但看起来你正在做一个看起来像方法定义的字符串。把它带到合乎逻辑的下一步, 一个基本的groovy类可能看起来像这样

    class Talker {
    
          def  hello(language) { return "Hello ${language} !" } 
    
    }
    
    def talker = new Talker()
    talker.hello("English")  // prints: Hello English!