我在Groovy中感到非常困惑。何时在Groovy中使用Strings
的内容?
1)单引号 - ' '
2)双引号 - " "
3)三重引号 - '''
我的代码:
println("Tilak Rox")
println('Tilak Rox')
println('''Tilak Rox''')
所有人都倾向于产生相同的结果。 何时使用什么?
答案 0 :(得分:11)
我会更加困惑你,说,你也可以使用斜杠/
,dolar-slash $/
和三重双引号"""
同样的结果。 =)
那么,有什么区别:
GString
,它允许字符串插值。即您可以在其中嵌入表达式:println("${40 + 5}")
打印45,而println('${ 40 + 5}')
将生成${ 40 + 5}
。这个表达式可能非常复杂,可以引用变量或调用方法。 /
和 $ slashy $/
字符串可用于帮助使用正则表达式。他们对'\'和'/'有特殊的逃避规则。正如@tim指出的那样,有一个很好的official documentation,解释了逃避规则和包含例子的细微差别。
很可能您不需要经常使用多行/斜杠字符串,因为您在非常特殊的情况下使用它们。但是当你这样做时,它们会对你的代码的可读性产生巨大的影响!
答案 1 :(得分:3)
单引号'
适用于基本字符串
双引号"
适用于模板化字符串,即:
def a = 'tim'
assert "Hi $a" == 'Hi tim'
三重单引号'''
适用于多行基本字符串
三重双"""
引号用于多行模板化字符串
还有模糊的字符串/hello $a/
美元贬值的字符串$/hello $a/$
是多行和模板化的