2010-04-13 34 views
1

我剛剛解決了JavaFX中項目Euler的第一個問題,因爲它的樂趣,並想知道塊表達式實際上有什麼好處?他們爲什麼優於功能?這是因爲範圍縮小嗎?少寫?性能?什麼是塊表達式實際上適合?

這裏是歐拉的例子。我在這裏使用了一個塊,但我不知道它是否有意義

// sums up all number from low to high exclusive which are divisible by a or b 
function sumDivisibleBy(a: Integer, b: Integer, high: Integer) { 
    def low = if (a <= b) a else b; 

    def sum = { 
     var result = 0; 

     for (i in [low .. <high] where i mod a == 0 or i mod b == 0) { 
      result += i 
     } 

     result 
    } 
} 

塊是否有意義嗎?

回答

1

哦,不,不是真的,它看起來像多餘的,沒有真正的好處的複雜性。嘗試刪除總和變量和塊,你會看到代碼仍然工作相同。當你想,而不是融通的代碼放到一個函數創建一個匿名範圍

一般來說塊表達式可以是有用的,大多數時候,你應該而創建一個函數。

相關問題