之间有什么区别
String test = "blah"
print("this is a test ${test} blah blah")
和
print("This is a test " + test + " blah blah")
答案 0 :(得分:2)
当字符串文字包含${}
时,Groovy构造 GString 。
根据它的Javadoc,一个GString:
表示包含
"hello there ${user} how are you?"
等嵌入值的字符串,可以懒惰地进行评估。高级用户可以迭代文本和值以执行特殊处理,例如执行SQL操作,值可以替换为?
,实际值对象可以绑定到JDBC语句。
因此"this is a test ${test} blah blah"
带有其结构,可以以编程方式检查。而"This is a test " + test + " blah blah"
是一个不可变的字符串,就像在Java中一样。
通常这对程序员没有任何影响,但偶尔会发生令人惊讶的事情 - 请参阅:dynamically set the db in a sql query
答案 1 :(得分:0)
实际上,每个使用“”的字符串都是GString。当你使用''时,这意味着你使用java.lang.String。 不幸的是,Java中的String是最终类。所以,groovy开发人员会做出解决方法。