groovy
Strings e GString letterali
Ricerca…
Sintassi
- 'Single quoted string'
- "Doppia stringa quotata"
- '' 'Stringa multilinea' '' '
- "" "Tripla stringa doppia citata" ""
- / Stringa /
- $ / Dollar slash string / $
Osservazioni
Groovy ha due tipi di stringhe java java.lang.String
e groovy.lang.GString
, oltre a più forme di stringhe letterali (vedi sintassi ed esempi).
La principale differenza tra i due tipi di stringhe è che GString supporta l'interpolazione delle stringhe.
Stringa singola quotata
def str = 'Single quoted string'
assert str instanceof String
Stringa doppia quotata (senza segnaposto di interpolazione)
def str = "Double quoted string"
assert str instanceof String
Stringa doppia quotata (interpolazione)
def param = 'string'
def str = "Double quoted ${param}"
assert str instanceof GString
assert str == 'Double quoted string'
Il parametro è risolto per impostazione predefinita, questo significa che questo si applica:
def param = 'string'
def str = "Double quoted ${param}"
param = 'another string'
assert str == 'Double quoted string'
Per caricare il parametro pigramente ogni volta che si usa la stringa, questo può essere fatto:
def param = 'string'
def str = "Double quoted ${ -> param}"
assert str == 'Double quoted string'
param = 'lazy load'
assert str == 'Double quoted lazy load'
Stringa multilinea
def str = '''multiline
string'''
assert str instanceof String
Stringa multilinea (extra nuova riga finale)
def str = '''
multiline
string'''
assert str.readLines().size() == 3
Stringa multilinea (senza newline extra finale)
def str = '''\
multiline
string'''
assert str.readLines().size() == 2
Tripla corda doppia citata
def param = 'string'
def str = """
multiline
$param
"""
assert str instanceof GString
assert str.readLines().size() == 3
assert str == '''
multiline
string
'''
Stringa fasulla (nessun segnaposto di interpolazione)
def str = /
multiline string
no need to escape slash
\n
/
assert str instanceof String
assert str.readLines().size() == 4
assert str.contains('\\n')
Stringa fasulla (interpolazione)
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')
Stringa di dollaro
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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow