2016-09-27 65 views
9

在Groovy中,我有一個多行字符串,用'''定義,其中我需要使用插值來替換其他一些變量。如何在Groovy多行字符串中使用字符串插值?

對於我所有的努力,我無法實現它 - 我想我需要逃避某些東西,而我錯過了。

下面是一些示例代碼:

def cretanFood = "Dakos" 
def mexicanFood = "Tacos" 
def bestRestaurant = ''' 
${mexicanFood} & ${cretanFood} 
''' 
print bestRestaurant 

目前,該電源輸出:

${mexicanFood} & ${cretanFood} 

,而我顯然會想到:

Tacos & Dakos 

(注意 - 我寧願不要連接字符串)

回答

14

在Groovy中,單引號用於創建不可變的字符串,就像Java用雙引號引起的一樣。

當您在Groovy中使用雙引號時,您會向運行時指示您打算創建可變字符串或Groovy字符串(簡稱GString)。你可以使用帶有可變字符串的變量插值,或者你可以把它作爲普通的普通Java字符串。

此行爲擴展到多行字符串版本;三重單引號的使用創建一個不可變的多行字符串,而三重雙引號創建一個Groovy字符串。

18

而不是使用'''GStringmulti-line string使用"""

def cretanFood  = "Dakos" 
def mexicanFood = "Tacos" 
def bestRestaurant = """${mexicanFood} & ${cretanFood}""" 
print bestRestaurant​ 

GString封閉在'''將不能夠解決placeholder - $。您可以在Groovy Documentation下標題中找到更多詳細信息。字符串字符串摘要表 block。

+0

嘿,謝謝!爲什麼會「」「工作,而不是'''? – gsaslis

+0

@gsaslis這是一個基本的常規groovy多行字符串文字 – injecteer

+0

@gsaslis我在回答中添加了原因 –

相關問題