В чем разница строк в одинарных или двойных кавычках в groovy?



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


есть ли разница? Или просто как javascript, чтобы ввести ' и " легче в строках?

860   2  

2 ответов:

одинарные кавычки-это стандартная строка 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"

и ссылка, данная юлькевичем в их ответе стоит прочитать (esp. часть о том, что GStrings не являются строками около 2/3 пути вниз.

Я понимаю, что строка в двойных кавычках может содержать встроенные ссылки на переменные и другие выражения. Например: "Hello $name","Hello ${some-expression-here}". В этом случае GString будет создан экземпляр вместо обычного String. С другой стороны, строки в одинарных кавычках не поддерживают этот синтаксис и всегда приводят к простому String. Подробнее по теме здесь:

http://docs.groovy-lang.org/latest/html/documentation/index.html#all-strings

Comments

    Ничего не найдено.