Recherche…


Syntaxe

  • 'Chaîne unique citée'
  • "Double guillemets"
  • '' 'Chaîne multiligne' ''
  • "" "Chaîne triple citée" ""
  • / Chaîne Slashy /
  • $ / Dollar barre oblique / $

Remarques

Groovy a deux types de chaînes, java.lang.String et groovy.lang.GString , ainsi que plusieurs formes de littéraux de chaîne (voir la syntaxe et des exemples).

La principale différence entre les deux types de chaînes est que GString prend en charge l'interpolation de chaînes.

Chaîne unique citée

def str = 'Single quoted string'
assert str instanceof String

Chaîne entre guillemets (sans espace réservé pour l'interpolation)

def str = "Double quoted string"
assert str instanceof String

Chaîne entre guillemets (interpolation)

def param = 'string'
def str = "Double quoted ${param}"
assert str instanceof GString
assert str == 'Double quoted string'

Le paramètre est résolu par défaut avec impatience, cela signifie que ceci s'applique:

def param = 'string'
def str = "Double quoted ${param}"
param = 'another string'
assert str == 'Double quoted string'

Pour charger le paramètre paresseusement chaque fois que la chaîne est utilisée, cela peut être fait:

def param = 'string'
def str = "Double quoted ${ -> param}"
assert str == 'Double quoted string'
param = 'lazy load'
assert str == 'Double quoted lazy load'

Chaîne multiligne

def str = '''multiline 
string'''
assert str instanceof String

Chaîne multiligne (nouvelle ligne supplémentaire)

def str = '''
multiline 
string'''
assert str.readLines().size() == 3

Chaîne multiligne (sans nouvelle ligne de fin)

def str = '''\
multiline 
string'''
assert str.readLines().size() == 2

Triple guillemet double

def param = 'string'
def str = """
multiline
$param
"""
assert str instanceof GString
assert str.readLines().size() == 3
assert str == '''
multiline
string
'''

Slashy string (pas d'espace réservé pour l'interpolation)

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 (interpolation)

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')

Chaîne de coupe de dollar

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow