2010-01-06 38 views
12

Nếu tôi xác định một đóng cửa trong GroovyGọi Groovy đóng cửa

def c = {println "foo"} 

Tôi có thể gọi nó bằng cách sử dụng

c() 

hoặc

c.call() 

AFAIK, hai giống hệt nhau. Tuy nhiên, tôi vừa phát hiện ra một cách thứ ba

c.doCall() 

Có bất kỳ sự khác biệt giữa call()doCall()

Cảm ơn, Don

Trả lời

11

Phương pháp doCall là những gì được gọi khi bạn gọi c() hoặc c .gọi điện().

Tôi tìm thấy một ví dụ cho biết nó được sử dụng để gọi đóng cửa từ bên trong chính nó, nhưng điều đó dường như cũng làm việc với cuộc gọi().

documentation nói rằng bạn cần cung cấp phương thức doCall() để chỉ định tham số để gọi đóng trong dạng ngắn (không sử dụng gọi hàm() một cách rõ ràng. Nhưng tôi không biết làm thế nào chính xác họ mong đợi rằng để làm việc.

Here's an explanation of call vs. doCall.

+2

bạn có thể giải thích (có thể đưa ra một ví dụ) về những gì bạn có nghĩa là bởi "bạn cần cung cấp một phương pháp doCall() để xác định các thông số để gọi việc đóng cửa theo hình thức ngắn" –

Các vấn đề liên quan