-2
我注意到Java的Lambda表達式似乎等於Objective-C blocks。Java和Objective-C塊中的lambdas有什麼區別?
Java的Lambda表達式與Objective-C的Blocks完全等價嗎?如果沒有,那麼Objective-C的塊有什麼不同?
我注意到Java的Lambda表達式似乎等於Objective-C blocks。Java和Objective-C塊中的lambdas有什麼區別?
Java的Lambda表達式與Objective-C的Blocks完全等價嗎?如果沒有,那麼Objective-C的塊有什麼不同?
在一個非常高的層次上,是的,他們是:這兩個塊和lambdas據說執行closures。非常非正式地,它們用於將可執行邏輯與邏輯運行的數據「打包」在一起,以便將其傳遞或存儲用於延遲執行。
但是,當您進入塊的實現和圍繞它們的語言時,存在許多重要差異。
例如,Java中的lambdas可以被認爲是創建實現單一方法接口的匿名內部類的快捷方式。一個實現相同接口的類的對象可以到達lambda可以到達的任何地方。
相比之下,Objective-C中的塊與協議(可以認爲是Java接口的對應部分)是分離的概念。如果使用塊類型的參數聲明方法,則必須爲其提供塊;你不能用一個非塊對象代替一個塊。
你的問題是什麼? – Michal
Java Lambda是否相當於Objective C Block的? – Abdellah
不是,不。 – Michal