def a = "a string"
def b = 'another'
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?或者就像javascript让我们输入'并"更容易在字符串中?
tim*_*tes 127
单引号是标准的java String
双引号是一个可模板化的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
Run Code Online (Sandbox Code Playgroud)
如果您尝试使用单引号字符串进行模板化,则它不会执行任何操作,因此:
println 'hi $a' // prints "hi $a"
Run Code Online (Sandbox Code Playgroud)
此外,julkiewicz在他们的回答中提供的链接值得一读(特别是关于GStrings不是字符串约2/3的部分).
jul*_*icz 17
我的理解是双引号字符串可能包含对变量和其他表达式的嵌入式引用.例如:"Hello $name","Hello ${some-expression-here}".在这种情况下,GString将实例化而不是常规String.另一方面,单引号字符串不支持此语法,并且始终导致普通字符串String.有关此主题的更多信息:
http://docs.groovy-lang.org/latest/html/documentation/index.html#all-strings
| 归档时间: |
|
| 查看次数: |
31716 次 |
| 最近记录: |