수색…


통사론

  • '작은 따옴표 붙은 문자열'
  • "큰 따옴표 붙은 문자열"
  • '' '여러 줄' ''
  • "" "큰 따옴표로 묶은 문자열" ""
  • / 슬픈 문자열 /
  • $ / 달러 슬래시 문자열 / $

비고

Groovy는 java java.lang.Stringgroovy.lang.GString 의 두 문자열 유형과 여러 형태의 문자열 리터럴을 가지고 있습니다 (구문과 예제 참조).

두 가지 유형의 문자열 간의 주요 차이점은 GString이 문자열 보간을 지원한다는 것입니다.

작은 따옴표 붙은 문자열

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

큰 따옴표 붙은 문자열 (보간 자리 표시 자 없음)

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

큰 따옴표 붙은 문자열 (보간법)

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

매개 변수는 기본적으로 열심히 해결됩니다. 즉 다음과 같습니다.

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

문자열이 사용될 때마다 지연 매개 변수를로드하려면 다음을 수행하십시오.

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

여러 줄

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

다중 행 (여분의 후행 줄 바꿈)

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

여러 줄 문자열 (줄 바꿈 줄 바꿈없이)

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

트리플 겹침 문자열

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

얇은 문자열 (보간 자리 표시 자 없음)

def str = /
multiline string
no need to escape slash
\n
/
assert str instanceof String
assert str.readLines().size() == 4
assert str.contains('\\n')

얇은 문자열 (보간법)

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')

달러 슬래시 문자열

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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow