Zoeken…


Syntaxis

  • 'Enkele aanhalingsteken'
  • "Dubbele aanhalingsteken"
  • '' 'Multiline string' ''
  • "" "Drievoudige dubbele aanhalingsteken" ""
  • / Slashy string /
  • $ / Dollar slash string / $

Opmerkingen

Groovy heeft twee groovy.lang.GString : java java.lang.String en groovy.lang.GString , evenals meerdere vormen van stringliterals (zie syntaxis en voorbeelden).

Het belangrijkste verschil tussen de twee soorten strings is dat GString stringinterpolatie ondersteunt.

Enkele aanhalingsteken

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

Dubbel aanhalingsteken (zonder tijdelijke aanduiding voor interpolatie)

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

Dubbele aanhalingsteken (interpolatie)

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

De parameter wordt standaard gretig opgelost, dit betekent dat dit van toepassing is:

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

Om de parameter lui te laden elke keer dat de string wordt gebruikt, kan dit worden gedaan:

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

Multiline string

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

Multiline string (extra volglijn nieuwe regel)

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

Multiline string (zonder extra volglijn newline)

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

Drievoudige dubbele aanhalingsteken

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

Slashy string (geen tijdelijke aanduiding voor interpolatie)

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

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 slash string

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow