1. ホーム
  2. string

[解決済み] groovyのシングルクォート、ダブルクォート内の文字列の違いは何ですか?

2022-08-07 08:46:02

質問

def a = "a string"
def b = 'another'

何か違いがあるのでしょうか?それともjavascriptで入力させるように '" の方が文字列では簡単?

どのように解決するには?

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

二重引用符はテンプレート可能なStringで、テンプレートされている場合はGStringを返し、そうでない場合は標準的なJava Stringを返します。 例えば

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"

また のリンクは、julkiewicz の回答で示されています。 は読む価値があります(特に、GStrings が Strings でないことに関する部分は、2/3 ほどのところにあります。