Информация об изменениях

Сообщение Re[7]: Фигурная скобка без новой строки: Fun() { от 28.11.2018 21:01

Изменено 28.11.2018 21:04 vsb

Re[7]: Фигурная скобка без новой строки: Fun() {
Здравствуйте, Masterspline, Вы писали:

vsb>>А что, кто-то не заключает все блоки в скобки? Это же прямой источник ошибок. Так ни в коем случае нельзя делать.


M>Иногда бывают варианты, когда лишние скобки реально лишние:


M>
M>std::string get_decision(bool condition)
M>{
M>    if( condition )
M>        return "фсе пропало";
M>    else
M>        return "ище есть шансы"; 
M>}
M>

M>Тут любой вариант (без else или со скобками) будет хуже читаться.

Если говорить конкретно про этот вариант, то тут, конечно, достаточно тернарного оператора. Но в целом я не вижу никакой нечитаемости в варианте вида

std::string get_decision(bool condition) {
    if( condition ) {
        return "фсе пропало";
    } else {
        return "ище есть шансы";
    }
    return result;
}


По строчкам одна лишняя скобка на закрывающую скобку. Зато когда скобки везде, глаза расслабляются, им не надо судорожно выхватывать куски кода после контрольных операторов, которые значительно меняют поток выполнения программы. Увидел скобки — значит что-то происходит. Нет скобок, значит там одна инструкция, ничего интересного, можно сканировать код дальше.

> Хотя, если такой код редактировать потом, то шансов добавить ошибку больше, чем со скобками.


Вот-вот, это самое главное.
Re[7]: Фигурная скобка без новой строки: Fun() {
Здравствуйте, Masterspline, Вы писали:

vsb>>А что, кто-то не заключает все блоки в скобки? Это же прямой источник ошибок. Так ни в коем случае нельзя делать.


M>Иногда бывают варианты, когда лишние скобки реально лишние:


M>
M>std::string get_decision(bool condition)
M>{
M>    if( condition )
M>        return "фсе пропало";
M>    else
M>        return "ище есть шансы"; 
M>}
M>

M>Тут любой вариант (без else или со скобками) будет хуже читаться.

Если говорить конкретно про этот вариант, то тут, конечно, достаточно тернарного оператора. Но в целом я не вижу никакой нечитаемости в варианте вида

std::string get_decision(bool condition) {
    if( condition ) {
        return "фсе пропало";
    } else {
        return "ище есть шансы";
    }
    return result;
}


По строчкам одна лишняя скобка на закрывающую скобку. Зато когда скобки везде, глаза расслабляются, им не надо судорожно выхватывать куски кода после контрольных операторов, которые значительно меняют поток выполнения программы. Увидел скобки — значит что-то происходит. Нет скобок, значит там одна инструкция, ничего интересного, можно сканировать код дальше.

> Хотя, если такой код редактировать потом, то шансов добавить ошибку больше, чем со скобками.


Вот-вот, это самое главное. Особенно с развитием пайтона этот шанс значительно повышается, если человек часто читает код на пайтоне и редко на C++, глаз может замылиться и не заметить подвоха.