Для чего на самом деле хороши блочные выражения? - PullRequest
1 голос
/ 13 апреля 2010

Я только что решил первую проблему из Project Euler в JavaFX и подумал, для чего на самом деле хороши выражения блоков? Почему они превосходят функции? Это из-за суженной области? Меньше писать? Производительность

Вот пример Эйлера. Я использовал блок здесь, но я не знаю, имеет ли он смысл

// 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 Ответ

1 голос
/ 13 апреля 2010

Ну, нет, не совсем, это выглядит как дополнительная сложность без реальной выгоды. Попробуйте удалить переменную суммы и блок, и вы увидите, что код по-прежнему работает так же.

В общем, блочные выражения могут быть полезны, когда вы хотите создать анонимную область видимости, а не разделять код на функцию, в большинстве случаев вам лучше создать функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...