เหตุใดวงเล็บจึงเป็นทางเลือกใน Groovy เฉพาะในกรณีที่คุณไม่ต้องการค่าส่งคืน

ตัวอย่างเช่น:

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

ใช้งานได้เพราะไม่ต้องการค่า

แต่เมื่อค่าที่ส่งคืนถูกกำหนดให้กับตัวแปร:

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)

ล้มเหลว

คุณต้องมีวงเล็บเพื่อให้มันรันได้

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

มีเหตุผลในการออกแบบที่อยู่เบื้องหลังสิ่งนี้หรือไม่? หรือเป็นเพียงวิธีการปฏิบัติ?


person OscarRyz    schedule 21.02.2011    source แหล่งที่มา
comment
ตลกดี พวกเขาทำแบบนั้นใน Visual Basic ด้วย... :-)   -  person PhiLho    schedule 24.02.2011


คำตอบ (2)


ฉันไม่ทราบคำตอบในอดีต แต่หมายเหตุ:

ตัวอย่างของคุณควรใช้ได้กับ Groovy 1.8 beta3+

person Michael Easter    schedule 21.02.2011

เพราะคุณจะไม่สามารถเชื่อมโยงการเรียกเมธอดไปยังค่าที่ส่งคืนได้หากไม่มีพวกมัน (อาจไม่ชัดเจนหากคุณจะโยงกับพารามิเตอร์แต่ละตัวหรือค่าที่ส่งคืน)

person Steven    schedule 21.02.2011