Как мне документировать задания Rake с помощью YARD?

Java допускает пустой блок в любом месте, где разрешен блок-оператор. Я уверен, что это общее правило для всех блоков упрощает компилятор.

Я согласен, что это в первую очередь причина ошибок, которые очень сложно найти. Я всегда использую фигурные скобки вокруг блоков, даже если есть один оператор, но Java позволяет вам сделать блок с фигурными скобками в любой момент, поэтому использование фигурных скобок не может спасти вас от этой участи. Например, я однажды потратил 4 часа на то, чтобы найти что-то вроде этого:

while (condition);
{
    statement;
    statement;
}

Точка с запятой в конце первой строки была опечаткой, случайно сделавшей блок оператора для цикла while пустым. Поскольку синтаксис действителен, программа скомпилирована и работает нормально, просто не так, как я этого хотел. Было действительно трудно найти.

Я могу подумать о одной ситуации, когда очень приятно , что вам разрешено иметь пустые блоки, и это что-то вроде этого:

if (condition1) {
    do_action_1();
}
else if (condition2) {
    //nothing really to do in this case
}
else if (condition3) {
    do_action2();
}
else {
    do_action3();
}

В приведенном выше примере вы хотите иметь возможность разделить различные условия. Помните, что эти условия могут быть перекрывающимися, поэтому не всегда возможно изменить порядок. Если одному из условий действительно ничего не нужно, то хорошо, что Java позволяет вам иметь пустой блок. В противном случае языку понадобится некоторая форма метода «noop» для использования, когда вы действительно ничего не хотите делать.

Я лично предпочел бы явный оператор noop, но это не так, как определена Java.

30
задан Leo 25 January 2016 в 16:05
поделиться