Groovy字符串变量替换之间的区别

时间:2013-06-14 16:03:42

标签: string groovy

在查看GStrings中的变量替换示例时,我注意到了两种不同的语法。这可以在这里看到:Groovy Templates

这是一个例子:

def text = 'Dear "$firstname $lastname",\nSo nice to meet you in <% print city %>.\nSee you in ${month},\n${signed}'

当你有一个表达式时,看起来$ {variable}更常用,但是当你只有一个变量时会使用$ variable,但即使在这里它们也会与$ firstname和$ {month}混合使用。当你有一个变量而不是一个表达式时,是否有理由以这种或那种方式做到这一点,或者它无关紧要?

1 个答案:

答案 0 :(得分:12)

没关系...

正如您所说,如果您有"${name.toUpperCase()}""${number}th""${list[0]}"这样的表达式,那么它必须在括号内,但"${name}"和{{1}是一样的。

实际上,只要简单的属性访问,您就可以省略大括号,即:"$name"

可以说添加大括号可以让你的字符串模板更容易阅读,但这是个人偏好的事情。