Jawaban:
Karena groovy tidak memiliki penanda EOL (seperti ;
), akan membingungkan jika Anda meletakkan operator di baris berikut
Ini akan bekerja sebagai gantinya:
def a = "test" +
"test" +
"test"
seperti yang diketahui pengurai Groovy untuk mengharapkan sesuatu di baris berikut
Groovy melihat dokumen asli Anda def
sebagai tiga pernyataan terpisah. The wakilnya pertama test
untuk a
, kedua dua mencoba untuk membuat "test"
positif (dan ini adalah di mana ia gagal)
Dengan new String
metode konstruktor, pengurai Groovy masih dalam konstruktor (karena kurung kurawal belum ditutup), sehingga secara logis dapat menggabungkan tiga baris menjadi satu pernyataan
Untuk String multi-baris yang sebenarnya, Anda juga dapat menggunakan kutipan tiga:
def a = """test
test
test"""
Akan membuat String dengan tes pada tiga baris
Selain itu, Anda bisa membuatnya lebih rapi dengan:
def a = """test
|test
|test""".stripMargin()
yang stripMargin
metode akan memangkas kiri (sampai dengan dan termasuk |
char) dari setiap baris
stripMargin()
.
|
karakter di baris tambahan
"""
string
stripIndent()
berfungsi.
Mirip dengan stripMargin()
, Anda juga bisa menggunakan stripIndent () seperti
def a = """\
test
test
test""".stripIndent()
Karena
Baris dengan jumlah spasi terdepan paling sedikit menentukan jumlah yang akan dihapus.
Anda juga perlu mengindentasi "test" pertama dan tidak langsung meletakkannya setelah inital """
( \
memastikan string multi-baris tidak dimulai dengan baris baru).
Anda dapat memberi tahu Groovy bahwa pernyataan tersebut harus mengevaluasi setelah baris berakhir dengan menambahkan sepasang tanda kurung ( ... )
def a = ("test"
+ "test"
+ "test")
Opsi kedua adalah menggunakan garis miring terbalik \
,, di akhir setiap baris:
def a = "test" \
+ "test" \
+ "test"
FWIW, ini identik dengan cara kerja pernyataan multi-baris Python.
def a = b + + "/" + c
. Dalam hal ini, dua simbol + jelas merupakan masalahnya.