169 похожих чатов

Задам странный, пожалуй вопрос, но заранее благодарен за ответ, что

лучше if или switch и главное почему?

11 ответов

16 просмотров

блондинки или брюнетки, а, главное, почему?

Давай контекст )

Антон- Автор вопроса

Например пачка редьюсеров в Реакте или выбор размера порции в зависимости от диеты в Ангуляре, не суть, есть например 5 условий можно реализовать это через else if или через switch, как правильнее поступить

Где кейсов больше 2х - лучше свитч

Антон- Автор вопроса

Почему?

в зависимости от ситуации

Я не знаю ответа swtich vs if, но у меня есть полезный кусок инфы по поводу switch: Если в коде есть несколько конструкций вида switch (actionType) …. То если тебе нужно будет добавить новый action, придется изменить все switch, Иногда этих switch много Для этого стараются избегать switch, и решать архитектурно задачу иначе Сам правил приложение, которое состояло из мелких switch, которые меняли цвет компонента в зависимости от стиля. Во всех гребанных компонентах был switch. Добавить/изменить стиль - изволь править десятки файлов

кажется все таки не в switch проблема была

можно было и через if, но у меня конкретно был switch

Антон- Автор вопроса

Тут я тоже так думаю

На самом деле на switch и раньше (грубо говоря до массового ООП) программисты набивали шишки. Именно поэтому ООП "выстрелило" — ты писал метод, а если делал новый класс-наследник, то тебе компилятор ругался, если какие-то методы не были определены. Однако, если в языке гарантируется полнота перебора этих кейсов, то мы получаем такое же удобство — компилятор ткнёт носом во все места, где в switch не добавлен новый case, но он требуется. Конкретно в TypeScript этого можно добиться через конструкцию assertNever (гуглится по этому названию)

Похожие вопросы

Обсуждают сегодня

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Всем привет. Сейчас я изучаю erlang по книге Erlang and OTP in action. Дошел до главы где реализуется первый gen server на примере tcp rpc сервера. Меня очень сильно смутил ко...
Freezing Death
9
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
Подскажите... Есть ли название у способа разработки кода, в котором: сперва пишут минимальную рабочую структуру: Напр. ввод, обработка, вывод, контроль. Потом эту структуру д...
Budemposmotret
6
В дизассемблере вижу, что строки пихают в регистры через lea, почему так, а не через mov?
Oleg
8
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
Коллеги, а не могли бы вы подсказать, как происходит оптимизация кода при выполнении кода julia? (Точнее, как управлять уровнем оптимизации, аналогично LLVM/GCC). Потому что...
Илья Гаража
5
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Карта сайта