Mengapa tanda kurung opsional di Groovy hanya jika Anda tidak memerlukan nilai kembalian?

Misalnya ini:

groovy:000> Arrays.asList 1,2,3,4,5
===> [1, 2, 3, 4, 5]

berfungsi, karena nilainya tidak diperlukan.

Namun ketika nilai kembalian ditetapkan ke variabel:

groovy:000> a = Arrays.asList 1,2,3,4,5
ERROR org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, groovysh_parse: 1: unexpected token: 1 @ line 1, column 19.
   a = Arrays.asList 1,2,3,4,5
                     ^

1 error

        at java_lang_Runnable$run.call (Unknown Source)

Gagal.

Untuk menjalankannya Anda memerlukan tanda kurung.

groovy:000> a = Arrays.asList( 1,2,3,4,5)
===> [1, 2, 3, 4, 5]

Apakah ada alasan desain di balik ini? Atau hanya sekedar cara implementasinya?


person OscarRyz    schedule 21.02.2011    source sumber
comment
Lucu, mereka juga melakukannya di Visual Basic... :-)   -  person PhiLho    schedule 24.02.2011


Jawaban (2)


Saya tidak tahu jawabannya secara historis, tetapi perhatikan:

Contoh Anda harus bekerja dengan Groovy 1.8 beta3+

person Michael Easter    schedule 21.02.2011

karena Anda tidak akan dapat menyambungkan panggilan metode ke nilai kembalian tanpa mereka. (akan menjadi ambigu jika Anda ingin menghubungkan ke parameter individual atau nilai yang dikembalikan.)

person Steven    schedule 21.02.2011