在Groovy中,我有一个多行字符串,用'''
定义,在我需要使用插值,以取代一些其他变量。
我所有的努力,我不能得到它的工作 - 我想我需要逃避的东西,我很想念它。
下面是一些示例代码:
def cretanFood = "Dakos"
def mexicanFood = "Tacos"
def bestRestaurant = '''
${mexicanFood} & ${cretanFood}
'''
print bestRestaurant
目前,该电源输出:
${mexicanFood} & ${cretanFood}
而我显然会想到:
Tacos & Dakos
(注 - 我宁愿不要在连接字符串)
在Groovy中,单引号被用来创建不可改变的字符串,就完全像Java那样用双引号。
当您在Groovy中使用双引号您指示运行时,你打算创建一个可变的字符串或Groovy字符串(GString的简称)。您可以使用可变插值可变字符串,或者你可以把它作为一个经常性普通Java字符串。
这种行为延伸到多行字符串版本;三重单引号的使用产生的不可变多行的字符串,而三重双引号创建一个Groovy字符串。
除了使用'''
为GString
或multi-line string
使用"""
的
def cretanFood = "Dakos"
def mexicanFood = "Tacos"
def bestRestaurant = """${mexicanFood} & ${cretanFood}"""
print bestRestaurant
GString
封闭在'''
将不能够解决placeholder - $
。您可以在标题和字符串汇总表块下Groovy Documentation更多细节。
这也可能是添加变量走出三重引号的一个好主意,只是将它们连接起来与内容。像这样的事情对你有引号内的内容复杂的情况:
def bestRestaurant = mexicanFood + """ & """ + cretanFood
由于你的情况很简单,这应该做得一样好:
def bestRestaurant = mexicanFood + " & " + cretanFood