什么是块表达式实际上有用?

时间:2010-04-13 09:11:28

标签: javafx

我刚刚在JavaFX中解决了Project 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 个答案:

答案 0 :(得分:1)

嗯,不,不是真的,它看起来像额外的复杂性,没有真正的好处。尝试删除sum变量和块,您将看到代码仍然有效。

一般来说,当您想要创建匿名范围而不是将代码分解为函数时,块表达式非常有用,大多数情况下您应该创建函数。