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

Почему clang-tidy рекомендует на 37 строке переписать свитч на if-else? https://pastebin.com/DNqgk0uT

14 ответов

18 просмотров

Потому что у тебя нет фигурных скобок в кейсах

У тебя половина брейков не сработает

Павло-Побуджувач Автор вопроса
Павло-Побуджувач Автор вопроса

Если в кейсе больше одной строки - да. Потому что если скобок нет, это будет однострочное выражение, а дальше игнор. Как в случае с if без скобок.

Павло-Побуджувач Автор вопроса
Eyed Shovel
Если в кейсе больше одной строки - да. Потому что ...

но ведь везде, где я вижу свитчи, там как раз двоеточие перед несколькими выражениями стоит

Павло Побуджувач
но ведь везде, где я вижу свитчи, там как раз двое...

Двоеточие у тебя в любом случае будет. Только надо после него скобки. switch val { case A: { ..... } }

Павло-Побуджувач Автор вопроса
Eyed Shovel
Двоеточие у тебя в любом случае будет. Только надо...

получается, после двоеточия идет одно выражение, и все последующие уже не относятся к кейсу? Или как это работает?

Павло Побуджувач
но ведь везде, где я вижу свитчи, там как раз двое...

Проведу аналогию с if. Проще представить if без скобок не так if (cond) foo(); А вот так if (cond) foo(); Так понятней? С кейсами то же самое.

Павло Побуджувач
получается, после двоеточия идет одно выражение, и...

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

Eyed Shovel
Проведу аналогию с if. Проще представить if без ск...

На первом варианте можно поставить breakpoint на втором нет, я предпочитаю первое, и формате так настраиваю. К тому же при длинном условии, вообще не видно, что будет происходить

Павло-Побуджувач Автор вопроса
Eyed Shovel
Да, так. Что будет - я не уверен. Но я уверен, что...

ну, вообще-то, работает как раз так, как я и задумал разве что ивенты мышки почему-то только для фиксированной длины левой части терминала репортятся

Il V
На первом варианте можно поставить breakpoint на в...

Это пример для наглядности. На деле лучше вообще ифы без скобок не писать, это во многих best practices описано

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

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

Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Есть тут те у кого дети есть + 2 работы + в зал ходят + в семейной жизни все хорошо?
Abdul-Aziz M.
13
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
кто шарит: mattermost отслеживает что ты на пк запускаешь?
Valentin
13
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
Всем привет! Стоит задачка, выбрать из выпадающего списка конкретный цвет. Пока реализовал через активацию контрола списка и выбора несколькими нажатиями стрелки вправо до нуж...
Роман.С
9
Карта сайта