Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Замена условия (if)
Форум на CrossPlatform.RU > Разработка > С\С++
RazrFalcon
Насколько быдлокод такая замена?
if (index == 0)
    button->setEnabled(true);
else
    button->setEnabled(false);

button->setEnabled(index == 0);
Гость
не быдлокод
button->setEnabled(index)
panter_dsd
1 вариант быдлокод.
proper
Может так ?
Я так понял, нужно дать противоположное значение индексу...
button->setEnabled(!index);

RazrFalcon
тупанул...

index = comboBox->currentIndex(); (сигнал у него есть на изменение индекса)

так вот нужно делать кнопку активной, если currentIndex() == 0


Цитата
1 вариант быдлокод.

Первый вариант первого сообщения? :huh:

то есть не быдлокод - это когда короче, грубо говоря.
ilyabvt
Цитата
то есть не быдлокод - это когда короче, грубо говоря.

Не всегда, но в целом да.
Алексей1153
Цитата(Гость_Гость_* @ 15.3.2012, 15:13) *
не быдлокод
button->setEnabled(index)

плохо
Sokoloff
Цитата(RazrFalcon @ 15.3.2012, 14:29) *
то есть не быдлокод - это когда короче, грубо говоря.


Главное это не уровень "быдлокодовости", главное чтоб код легко было понять. Как тебе через год, так и другим программистам. Исходи из этого в первую очередь.
Алексей1153
Цитата(Sokoloff @ 16.3.2012, 19:32) *
Главное это не уровень "быдлокодовости", главное чтоб код легко было понять. Как тебе через год, так и другим программистам. Исходи из этого в первую очередь.


аа,ну дык:

button->setEnabled(index!=0)


:)

это понятнее. И, что главное, правильнее
Sokoloff
Цитата(Алексей1153 @ 16.3.2012, 17:43) *
button->setEnabled(index!=0)

это понятнее. И, что главное, правильнее

Понятно что ты отпечатался, не буду придираться. Но чем
button->setEnabled(index==0)

правильнее чем следующие 2?
if (index == 0)
    button->setEnabled(true);
else
    button->setEnabled(false);

или
button->setEnabled(!index)


Все три варианта дают один результат. Про последний вариант можно раздуть теорию, что теоретически он будет быстрее, т.к. нет сравнения, не запутываем предсказатель переходов в проце, и.т.д. Но на практике разницы не будет. Это примитивный пример, и писать можно по любому (я скорее использовал бы последний). Реальная жизнь сложнее, и иногда приходится долго втыкать в мега конструкцию кода в одну строку, а был бы код в несколько строк - понимался бы слету.

Я почему встрял?
Цитата(RazrFalcon @ 15.3.2012, 14:29) *
то есть не быдлокод - это когда короче, грубо говоря.
И останется у человека установка, что чем короче, тем лучше. И будет он писать короткий, запутанный код. Уж лучше установка на понятность. А краткость со временем приходит от лени.
RazrFalcon
не, ну это я сумбурно выразился, я то не первый день с с++/Qt
и не первый день на форуме.

просто сложно прощупать грань между читабельностью и быдлокодом

я стараюсь сделать код как можно короче - мне так читабельнее


PS: на тему читабельности можно отнести и однострочные функции, которые все равно короче оригиналов.
Алексей1153
Sokoloff, я вовсе не опечатался, именно != . Я не посмотрел, что инверсия у него. А чем отличается - типом возвращаемого значения, чтобы по возможности не было неявного приведения. И те самые "следующие 2"

- как раз самое правильное (и кто решил, что детальность - это быдлокод ?) . Но так никто не делает, потому что код не совсем для даунов пишется :D Но это никак не быдлокод, это отсутствие лени.

кстати, "!index" тоже подойдёт - вертает тип bool
Iron Bug
лучше писать так, чтобы компилятор не ругался. в идеале, неявных приведений типов быть не должно - это потенциальный источник ошибки.
а когда из-за кучи сокращений в большом проекте стопицот варнингов - вот это плохо. в идеале - не должно быть ни одного.
Алексей1153
Iron Bug, вот и я всегда этого придерживаюсь. И частенько warning вскрывает нехорошие опечатки и избавляет от лишнего гемора
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.