Groovy で一重引用符と二重引用符で囲まれた文字列の違いは何ですか? 質問する

Groovy で一重引用符と二重引用符で囲まれた文字列の違いは何ですか? 質問する
def a = "a string"
def b = 'another'

何か違いはありますか? それとも、JavaScript のように文字列を簡単に入力できるのでしょう'"?

ベストアンサー1

シングルクォートはJavaの標準文字列です

二重引用符はテンプレート化可能な文字列であり、テンプレート化されている場合は GString を返し、そうでない場合は標準の Java 文字列を返します。例:

println 'hi'.class.name    // prints java.lang.String
println "hi".class.name    // prints java.lang.String

def a = 'Freewind'
println "hi $a"            // prints "hi Freewind"
println "hi $a".class.name // prints org.codehaus.groovy.runtime.GStringImpl

一重引用符で囲まれた文字列でテンプレート化を試みても何も起こりません。

println 'hi $a'            // prints "hi $a"

また、julx が回答で示したリンク一読の価値があります (特に、約 2/3 のところにある GStrings が Strings ではないという部分)。

おすすめ記事