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

use*_*917 6 string groovy

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

这有一个例子:

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

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

tim*_*tes 13

没关系......

正如你所说的,如果你有一个像表达"${name.toUpperCase()}","${number}th"或者"${list[0]}",那么它必须是在大括号,但两者"${name}""$name"是相同的.

实际上,只要它是简单的属性访问,你可以省略大括号,即: "Hello $person.username"

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