Обновить
0
0

Пользователь

Отправить сообщение

из нелогичного можно вспомнить equals из джавы или switch case где обязательно надо ставить break

Ну, тут вы загнули, конечно. Метод equals() нужен потому, что объекты нужно как-то сравнивать, а механизма перегрузки операторов в джаве не было отродясь. Если бы вы сказали про отсутствие этой перегрузки, я бы с вами согласился, а так – хороший инструмент в рамках правил самого языка(напоминаю, что оператор сравнения сравнивает объекты на эквивалентность, то бишь сравнивает хеши, а метод equals() сравнивает объекты так, как нужно вам).

Но вот насчет switch case и break я с вами соглашусь... но дело в том, что во многих сиподобных языках дело обстоит точно так же. Во всяком случае, в плюсах и си все идентично. Но даже так, в джаве есть альтернатива – вы можете вызвать лямбду в кейсе, и все будет работать. Если вы не поняли, о чем я, вот пример:

switch (param) { //стандартный вариант писать кейсы
    case value:
        //some code;
        break;
}

switch (param) { //вариант через лямбды
    case value -> {
        //some code;
    }
}

Вот о чем я говорю. Хотя, я могу согласиться, что это неочевидно и требует знаний некоторых тонкостей языка, но я считаю, что это, внезапно, проблема не языка.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность