def a = "a string"
def b = 'another'
차이가 있습니까? 아니면 그냥 자바 스크립트처럼의 입력 수 있도록 '
하고 "
문자열에서 쉽게?
답변
작은 따옴표는 표준 Java 문자열입니다.
큰 따옴표는 템플릿 가능한 문자열로, 템플릿 화 된 경우 GString을 반환하거나 표준 자바 문자열을 반환합니다. 예를 들면 :
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에 관한 부분은 약 2/3 정도의 Strings가 아닙니다.
답변
내 이해는 큰 따옴표로 묶인 문자열에 변수 및 기타 표현식에 대한 참조가 포함될 수 있다는 것입니다. 예 : "Hello $name"
, "Hello ${some-expression-here}"
. 이 경우 a GString
는 일반 대신 인스턴스화됩니다 String
. 반면에 작은 따옴표로 묶인 문자열은이 구문을 지원하지 않으며 항상 일반 String
. 여기에서 주제에 대해 자세히 알아보십시오.
http://docs.groovy-lang.org/latest/html/documentation/index.html#all-strings