2016-09-27 5 views
9

Groovyには、'''で定義された複数行の文字列があります。他の変数を代入するために補間を使用する必要があります。Groovyの複数行文字列で文字列補間を使用するにはどうすればよいですか?

すべての努力のために、私はそれを働かせることができません - 私は行方不明の何かをエスケープする必要があると仮定します。

ここではいくつかのサンプルコードです:私は明らかに期待しながら、

${mexicanFood} & ${cretanFood} 

Tacos & Dakos 

は(注 - 私は好まないでしょう

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

は、現時点では、この出力文字列を連結する)

答えて

14

Groovyでは、Javaで二重引用符を使用するのとまったく同じように、一重引用符を使用して不変の文字列を作成します。

Groovyで二重引用符を使用する場合は、変更可能なStringまたはGroovy String(略してGString)を作成することをランタイムに指示します。変更可能なStringを使用して可変補間を使用することも、通常のプレーンJava Stringとして残すこともできます。

この動作は、複数行の文字列バージョンにまで及んでいます。トリプルシングルクォーテーションを使用すると、不変のマルチラインストリングが作成されますが、トリプルダブルクォートはGroovyストリングを作成します。

18

代わり'''で囲まGStringまたはmulti-line string使用"""

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

GStringため'''を使用してのplaceholder - $解決することができません。 Groovy Documentationの見出しの下にあるの文字列の文字列の要約表ブロックで詳細を見つけることができます。

+0

ねえ、ありがとう!なぜでしょうか? – gsaslis

+0

@gsaslisこれは基本的なgroovyの複数行文字列リテラルです – injecteer

+0

@gsaslis答えに理由を追加しました –

関連する問題