微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何避免求值GString

如何解决如何避免求值GString

| 我正在使用groovy扩展传统脚本系统。源脚本是\“ java-like \”,因此它几乎经过少量预处理就可以解析为普通脚本。 我正在使用invokeMethod()和missingMethod()传递旧代码,从而使我能够使用闭包和其他常规功能来增强脚本。但是,原始脚本使用\“ $ foo \”类型的字符串来引用变量。当遗漏方法被missingMethod()捕获时,我需要它不将该字符串评估为GString,而只是逐字输出。这有可能吗?     

解决方法

有两种逃避$ foo的方法: 将\'$ \'转义为\'\\ $ \' 使用\'代替\“作为字符串定界符 例:
 def test = \"bad\"
 def s0 = \"$test\"
 def s1 = \"\\$test\"
 assert s1 != s0
 def s2 = \'$test\'
 assert s2 == s1
 println s0
 println s1
 println s2
所以我想你必须使用预处理器才能转义字符串     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。