如何避免对GString求值



我正在使用groovy扩展遗留脚本系统。源脚本是"类java"的,因此它主要是作为经过少量预处理的groovy脚本进行解析。

我使用invokeMethod()和missingMethod()来传递遗留代码,使我能够使用闭包和其他groovy特性来增强脚本。但是,原始脚本使用"$foo"类型的字符串来引用变量。当遗留方法被missingMethod()捕获时,我需要它不将此字符串作为GString计算,而只是逐字输出它。这有可能吗?

有两种方法可以转义$foo:

  1. 将'$'转义为'$'
  2. 使用'代替'作为字符串分隔符

的例子:

 def test = "bad"
 def s0 = "$test"
 def s1 = "$test"
 assert s1 != s0
 def s2 = '$test'
 assert s2 == s1
 println s0
 println s1
 println s2
所以我猜你必须使用预处理器来转义字符串

相关内容

  • 没有找到相关文章

最新更新