Ponieważ groovy nie ma znacznika EOL (takiego jak ;), jest zdezorientowany, jeśli umieścisz operator w następującej linii
To zadziałałoby zamiast tego:
def a = "test" +
"test" +
"test"
ponieważ parser Groovy wie, że może się spodziewać czegoś w następnym wierszu
Groovy postrzega Twój oryginał defjako trzy oddzielne stwierdzenia. Pierwsze przypisuje testdo a, drugi dwa spróbować zrobić "test"pozytywne (i to jest, gdy nie powiedzie się)
W przypadku new Stringmetody konstruktora parser Groovy nadal znajduje się w konstruktorze (ponieważ nawias nie został jeszcze zamknięty), więc może logicznie połączyć trzy wiersze w jedną instrukcję
W przypadku prawdziwych ciągów wielowierszowych możesz również użyć potrójnego cudzysłowu:
def a = """test
test
test"""
Stworzy łańcuch z testem w trzech liniach
Możesz również uczynić to schludniejszym, wykonując:
def a = """test
|test
|test""".stripMargin()
stripMarginsposób będzie wykończenia lewo (aż do i włączając |znaki) z każdej linii
def a = b + + "/" + c. W tym przypadku problemem są oczywiście dwa symbole +.