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