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