groovy
Strings und GString-Literale
Suche…
Syntax
- "Zeichenfolge in Anführungszeichen"
- "Doppelte Anführungszeichenfolge"
- '' 'Mehrzeiliger String' ''
- "" "Dreifache doppelte Anführungszeichenfolge" ""
- / Slashy String /
- $ / Dollarzeichenfolge / $
Bemerkungen
Groovy hat zwei Zeichenfolgentypen, java.lang.String
und groovy.lang.GString
, sowie mehrere Formen von String-Literalen (siehe Syntax und Beispiele).
Der Hauptunterschied zwischen den beiden Arten von Zeichenfolgen besteht darin, dass GString die Zeichenketteninterpolation unterstützt.
Zeichenfolge in Anführungszeichen
def str = 'Single quoted string'
assert str instanceof String
Doppelte Anführungszeichenfolge (ohne Interpolationsplatzhalter)
def str = "Double quoted string"
assert str instanceof String
Doppelte Anführungszeichenfolge (Interpolation)
def param = 'string'
def str = "Double quoted ${param}"
assert str instanceof GString
assert str == 'Double quoted string'
Der Parameter wird standardmäßig eifrig aufgelöst, das heißt, dies gilt:
def param = 'string'
def str = "Double quoted ${param}"
param = 'another string'
assert str == 'Double quoted string'
Um den Parameter bei jeder Verwendung der Zeichenkette träge zu laden, können Sie Folgendes tun:
def param = 'string'
def str = "Double quoted ${ -> param}"
assert str == 'Double quoted string'
param = 'lazy load'
assert str == 'Double quoted lazy load'
Mehrzeilige Zeichenfolge
def str = '''multiline
string'''
assert str instanceof String
Mehrzeilige Zeichenfolge (extra nachgestellte Zeile)
def str = '''
multiline
string'''
assert str.readLines().size() == 3
Multiline-Saite (ohne extra nachgestellte Zeile)
def str = '''\
multiline
string'''
assert str.readLines().size() == 2
Dreifache doppelte Anführungszeichenfolge
def param = 'string'
def str = """
multiline
$param
"""
assert str instanceof GString
assert str.readLines().size() == 3
assert str == '''
multiline
string
'''
Slashy-String (kein Interpolationsplatzhalter)
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')
Dollar-Schrägstrich
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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow