我一直在學習scala,我得說這是一種非常酷的語言。我特別喜歡它的模式匹配功能和函數文字,但是我來自javascript,ruby背景,並且在這些語言中我最喜歡的模式之一是懶惰函數和方法定義模式。在JavaScript的一個例子是scala中的懶惰函數定義
var foo = function() {
var t = new Date();
foo = function() {
return t;
};
return foo();
};
相同的代碼稍作調整工作在紅寶石,你只需要使用單獨的對象重新定義法進行計算後。當涉及昂貴的計算時,這種事情非常方便,而且如果您需要結果,您不會提前知道。我知道在scala中我可以使用緩存來模擬同樣的結果,但我試圖避免條件檢查,到目前爲止,我的實驗已經返回負面結果。有誰知道在scala中是否有懶惰的函數或方法定義模式?
注意:JavaScript代碼來自Peter Michaux的site。
請記住,除非真的沒有回答你的問題,否則你應該給答案一個漂亮的綠色複選標記! – 2010-08-25 17:38:21
+1鏈接到Peter Michaux網站上非常有趣的文章。 :-) – 2010-12-01 08:18:09