groovy
Strängar och GString-bokstäver
Sök…
Syntax
- "Enkel citerad sträng"
- "Dubbelciterad sträng"
- '' 'Multiline string' ''
- "" "Trippel dubbelciterad sträng" ""
- / Slashy string /
- $ / Dollar snedsträng / $
Anmärkningar
Groovy har två java.lang.String
java java.lang.String
och groovy.lang.GString
, såväl som flera former av strängbokstäver (se syntax och exempel).
Huvudskillnaden mellan de två strängtyperna är att GString stöder stränginterpolering.
Enkel citerad sträng
def str = 'Single quoted string'
assert str instanceof String
Dubbelciterad sträng (utan interpolationsplatshållare)
def str = "Double quoted string"
assert str instanceof String
Dubbelciterad sträng (interpolation)
def param = 'string'
def str = "Double quoted ${param}"
assert str instanceof GString
assert str == 'Double quoted string'
Parametern löses som standard ivrigt, det betyder att detta gäller:
def param = 'string'
def str = "Double quoted ${param}"
param = 'another string'
assert str == 'Double quoted string'
För att ladda parametern latent varje gång strängen används kan detta göras:
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 släpande ny linje)
def str = '''
multiline
string'''
assert str.readLines().size() == 3
Multiline string (utan extra släpande ny linje)
def str = '''\
multiline
string'''
assert str.readLines().size() == 2
Trippel dubbelciterad sträng
def param = 'string'
def str = """
multiline
$param
"""
assert str instanceof GString
assert str.readLines().size() == 3
assert str == '''
multiline
string
'''
Slashy sträng (ingen interpoleringsplatshållare)
def str = /
multiline string
no need to escape slash
\n
/
assert str instanceof String
assert str.readLines().size() == 4
assert str.contains('\\n')
Slashy sträng (interpolering)
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')
Dollarslashsträng
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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow