Так как у groovy нет маркера EOL (например, ;
), он может запутаться, если поставить оператор в следующую строку
Это будет работать вместо:
def a = "test" +
"test" +
"test"
поскольку анализатор Groovy знает, что чего-то ожидать в следующей строке
Groovy видит ваш исходный def
как три отдельных утверждения.Первый присваивает test
a
, вторые два пытаются сделать "test"
положительным (и вот где это не получается)
С помощью метода конструктора new String
анализатор Groovy все еще находится вконструктор (поскольку скобка еще не закрыта), поэтому он может логически объединить три строки в один оператор
Для истинных многострочных строк вы также можете использовать тройную кавычку:
def a = """test
test
test"""
Создает строку с тестом из трех строк
Кроме того, вы можете сделать ее аккуратнее с помощью:
def a = """test
|test
|test""".stripMargin()
stripMargin
метод воляобрежьте влево (до |
символа) от каждой строки