美元符号后的非法字符串身体字符

ani*_*ish 18 groovy

如果我定义一个groovy变量

def x = "anish$"
Run Code Online (Sandbox Code Playgroud)

它会给我带来错误,解决方法是

def x = "anish\$"
Run Code Online (Sandbox Code Playgroud)

除了形式"$"什么是需要反斜杠的黑名单字符,是否有一个列出保留字符的Groovy引用.大多数"语言规范"都提到了这些细节,但我没有在Groovy语言规范中看到它(许多"TODO"评论).

tim*_*tes 27

只需使用单引号:

def x = 'anish$'
Run Code Online (Sandbox Code Playgroud)

如果这是不可能的,唯一会导致问题的是$,因为这是使用的模板字符GString(参见本页的GString部分- 大约一半)

显然,反斜杠char也需要转义,即:

def x = 'anish\\'
Run Code Online (Sandbox Code Playgroud)


Mar*_*ças 8

您可以使用八进制表示.字符$表示八进制的044,然后:
def x = 'anish\044'


def x = 'anish\044'

例如,在Java中我确实使用了这样的:
def x = 'anish\044'

  • 我更喜欢这个解决方案,因为我在一个groovy脚本中使用传统的java代码.我可以将我在Eclipse中的java文件中的代码复制并粘贴到groovy脚本中,而不必担心Java语法和groovy语法之间的任何差异. (2认同)