groovy
Cuerdas y literales GString.
Buscar..
Sintaxis
- 'Cadena de comillas simples'
- "Doble cadena entre comillas"
- '' 'Cadena multilínea' ''
- "" "Cadena entre comillas doble" ""
- / Slashy string /
- $ / Dollar slash string / $
Observaciones
Groovy tiene dos tipos de cadenas: java java.lang.String
y groovy.lang.GString
, así como múltiples formas de literales de cadenas (consulte la sintaxis y los ejemplos).
La principal diferencia entre los dos tipos de cadenas es que GString admite la interpolación de cadenas.
Cadena entre comillas simples
def str = 'Single quoted string'
assert str instanceof String
Cadena entre comillas dobles (sin marcador de posición de interpolación)
def str = "Double quoted string"
assert str instanceof String
Doble cadena entre comillas (interpolación)
def param = 'string'
def str = "Double quoted ${param}"
assert str instanceof GString
assert str == 'Double quoted string'
El parámetro se resuelve con entusiasmo, esto significa que esto se aplica:
def param = 'string'
def str = "Double quoted ${param}"
param = 'another string'
assert str == 'Double quoted string'
Para cargar el parámetro perezosamente cada vez que se usa la cadena, esto se puede hacer:
def param = 'string'
def str = "Double quoted ${ -> param}"
assert str == 'Double quoted string'
param = 'lazy load'
assert str == 'Double quoted lazy load'
Cuerda multilínea
def str = '''multiline
string'''
assert str instanceof String
Cadena multilínea (nueva línea extra)
def str = '''
multiline
string'''
assert str.readLines().size() == 3
Cadena multilínea (sin salto de línea adicional)
def str = '''\
multiline
string'''
assert str.readLines().size() == 2
Cita doble triple
def param = 'string'
def str = """
multiline
$param
"""
assert str instanceof GString
assert str.readLines().size() == 3
assert str == '''
multiline
string
'''
Slashy string (sin marcador de posición de interpolación)
def str = /
multiline string
no need to escape slash
\n
/
assert str instanceof String
assert str.readLines().size() == 4
assert str.contains('\\n')
Slashy string (interpolación)
def param = 'string'
def str = /
multiline $param
no need to escape slash
\n
/
assert str instanceof GString
assert str.readLines().size() == 4
assert str.contains('\\n')
assert str.contains('string')
Cadena de barra de dólar
def param = 'string'
def str = $/
multiline $param
no need to escape slash
\n
$
$$
/$
assert str instanceof GString
assert str.readLines().size() == 6
assert str.contains('\\n')
assert str.contains('$')
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow