在Groovy manual中,您可以找到这两段文字:
任何Groovy表达式都可以在所有字符串文字中插入, 除了单个和三个单引号字符串。
Slashy string ... 只需使用反斜杠转义正斜杠
它们显然是矛盾的,因为根据第二句,/ $ a /将被解释为' $a
'。但是,根据第一个,它将被解释为' -the meaning of variable a-
'。在现实生活中,它将以第二种方式起作用。
有趣的是,在看起来像变量的东西之前的美元也应该用单引号字符串进行转义。现实生活中的例子是here。即使没有插值,Groovy也会尝试将$读作变量名前缀。
看起来,美元贬值字符串的解释为所有字符串设置正确:
除了逃避将开始的字符串子序列的美元 就像一个GString占位符序列,......
你能否为groovy逃避规则制定正确且无关紧要的规则?
实际测试是在Intellij的Gradle插件上进行的。