Я бы на месте VS тоже надеялся, что ты не if (x == false) пишешь...
У меня были в практике одни немцы, у которых в кодстайле было прописано if (x == true) {} else if (x == false) {} как обязательная конструкция
А как же финальный else на случай, если предыдущие два условия не выполнятся?
Вполне возможная ситуация, почему нет. Вдруг там и не булево вовсе.)
"не булево" обычно считается как
0 == false
любое ненулевое значение == true
0 == false
любое ненулевое значение == true
Ну в том же js например null не равен ни тому ни тому.
А если не булеан, то в любом нормальном языке такая конструкция должна вылететь с эксепшном или эррором.
В любом языке с анальной типизацией, ты хотел сказать?
По моему субъективному мнению в переводе на человеческий:
Koka имеет в виду, что вместо банального выражения "Если идет дождь" не стоит писать "Если дождь идет это правда".
Trill же привел пример кода наших западных друзей, которые вместо выражения "Если идет дождь, возьми зонт, иначе – не бери", написали конструкцию "Если идет дождь это правда, возьми зонт, иначе, если идет дождь это ложь, не бери зонт".
Господин же lefty, иронично подметил, что раз уж отрицание выражения "идет дождь" не очевидно (для германских авторов), то следует "на всякий случай" еще дописать одно "иначе", а то вдруг кроме "идет дождь это правда" и "идет дождь это ложь" есть еще варианты.
Koka имеет в виду, что вместо банального выражения "Если идет дождь" не стоит писать "Если дождь идет это правда".
Trill же привел пример кода наших западных друзей, которые вместо выражения "Если идет дождь, возьми зонт, иначе – не бери", написали конструкцию "Если идет дождь это правда, возьми зонт, иначе, если идет дождь это ложь, не бери зонт".
Господин же lefty, иронично подметил, что раз уж отрицание выражения "идет дождь" не очевидно (для германских авторов), то следует "на всякий случай" еще дописать одно "иначе", а то вдруг кроме "идет дождь это правда" и "идет дождь это ложь" есть еще варианты.
вот теперь и я нихуя не понял ))
Лектор:
- Грудная клетка человека представляет из себя яйцо, перевернутое вверх ногами, подрезанное снизу и слегка подвинутое в передне-заднем направлении.
Студент:
- А как это???
Лектор:
- Ну вы себе что - грудную клетку не представляете?
Студент:
- Теперь уже не представляю.....
- Грудная клетка человека представляет из себя яйцо, перевернутое вверх ногами, подрезанное снизу и слегка подвинутое в передне-заднем направлении.
Студент:
- А как это???
Лектор:
- Ну вы себе что - грудную клетку не представляете?
Студент:
- Теперь уже не представляю.....
"идет что-то, но дождь ли - мы не выяснили"
"погоды не существует"
"я в бункере, мне пофиг"
"погоды не существует"
"я в бункере, мне пофиг"
Ну тип, у тебя есть переменная у которой ты ОЖИДАЕШЬ значения или true, или false. Но эта-же переменная может быть и null, и другого формата типа даты, строки, цифры и хуй знает чем ещё. Может она вообще пока даже не была задана. Вот на такие случаи и можно добавить завершающий else, тип когда "всё пошло не по плану и на всякий чтоб программа не встала вывести "всё хуйня"."
Согласен, слишком доверяют машине, так наверное скайнет и зародился
Четветртинка на половинку?
Даже в жабе там может прийти null, не говоря уж о языках с динамической типизацией
смотря на то, это boolean или Boolean :)
Хуй, знает, что с немцами не так, но подтверждаю. Живу-работаю в Германии, и переодически вижу подобную хуйню.
Может так четче видно? "!" всякие можно и проглядеть. Условие в елсе нужно, если кода много, чтобы видеть сразу, какие условия в ветке выполняются.
В нормальных местах, правда, для этих целей используют комментарии.
В нормальных местах, правда, для этих целей используют комментарии.
А кода и не должно быть много. Это лишь говорит о неправильной композиции и "спагетти".
Чуть минус не влепил за такой кодстайл. Подозреваю, что это переехало из кодстайла к другому языку. Ну и еще говорят, лучше безобразно, но однообразно. С чем я, отчасти, даже согласен.
Так если заранее проверишь на null вроде должен работать. Если это похоже на котлин конечно.
Это C# и там строгая типизация, как и в яве. Там нет никаких undefined, типы значений, например bool может быть строго true/false. Ссылочный тип может не иметь значения, то есть там будет null. Через System.Nullable можно обернуть тим значения в ссылочный тип, который в свою очередь уже может принимать значение null. Зачем? В моей рабочей БД (MS SQL) сейчас в табличках 529 филдов стипом Bit (а не Bit NOT NULL), которые могут иметь три значения true/false/null. И в синтаксисе у тебя уже не выйдет полноценно юзать синтаксический сахар воокруг такой мудреной булки, и так же тебе приходится учитывать уже не два, а три возможных состояния такой переменной. Тебе приходится делать выражения вроде .Where(hope => hope != true). Это целиком легально.
Ебучая энтити?
В EF конешно можно указать "это bool, ничего не знаю", но тогда рискуешь получить экзепшен при касте на вычетке данных.
null это вполне себе значение и состояние в базе данных - от тебя в любой момент могут потребовать логику, опирающуюся на факт что значение этому полю еще не было присвоено.
Чтобы null не был "вполне себе значением и состоянием" можно указать not null для конкретного поля, для для bit-а логично. Ну, а если это уже никак не поменять по соображениям какого-то межгалактического порядка (что у индусов бывает с завидной регулярностью), то можно использовать COALESCE. Если нельзя, то можно написать и так if (!(hope ?? false)) например. Или сделать свою обертку по аналогии с isNullOrEmpty. Или выставить default. Или привязать к модели с предустановленными значениями. Или... да, короче, решений много.
Ну как бы котлин тоже не с динамической типизацией язык. Просто Nullable объявляются примерно так же:
var a : boolean?
И там конструкция где сначала проверяешь на null, а потом уже работаешь как с обычным bool более чем легальна.
var a : boolean?
И там конструкция где сначала проверяешь на null, а потом уже работаешь как с обычным bool более чем легальна.
nullable, ясен хер у твой пример не работает
if(hope?.Value == false)
if(hope?.Value == false)
Я как бы потому и скинул этот пример, пытаясь обьяснить, что писать в VS if (x == false) это не обязательно преступление и может быть вполне обосновано ситуацией, или даже тупо привычкой везде работать с nullable.
Короткая запись "if (!x)" - это сахар и не более, не всегда и не вео всех случаях уместный и писать как то иначе - это не признак некомпетентности.
Короткая запись "if (!x)" - это сахар и не более, не всегда и не вео всех случаях уместный и писать как то иначе - это не признак некомпетентности.
!hope.GetValueOrDefault()
очень лаконично, и гораздо понятнее чем hope==false
Так, ингда, лучше читаемость. А компилятор и сам оптимизирует.
Почему меньше именно 5?
Потому что false 5 символов, а true - 4
в true 4 буквы, в false 5, я поплыл)
Бля, я так ору. В слове False - пять букв. В слове True - 4.
Спасибо всем кто объяснил. Не подумал бы, что такое сравнение компиляторы тоже умеют делать
написано же .length
На прошлой работе платформа работала на форке VB. В общем компилятор не отлавливал некоторые синтаксические ошибки (сам раз 12-15 ловил) и код (причем мог вообще в любом другом месте) работал, но крайне безумно.
В частности могло произойти так, что в
If x=0 then
A
Else
B
не исполнялось ни А ни B, а код шел дальше не выпадая ни в какую ошибку.
В частности могло произойти так, что в
If x=0 then
A
Else
B
не исполнялось ни А ни B, а код шел дальше не выпадая ни в какую ошибку.
Странно. Этот код всегда должен ловить буквально всё. Если х=0, давать А, а во всех остальных случаях, даже если х нет, давать Б.
Для этого линтеры используют.
Лол, немножко эзотерического BrightScript в тредик:
isTrue = value = true
Как наиболее простой способ проверить что value не invalid(внутренний тип, а-ля null в нормальном ЯП) и равно true(да, не очепятка, присвоение и сравнение - один символ "равно"). Пиздец удобно...
isTrue = value = true
Как наиболее простой способ проверить что value не invalid(внутренний тип, а-ля null в нормальном ЯП) и равно true(да, не очепятка, присвоение и сравнение - один символ "равно"). Пиздец удобно...
Раз уж мы продолжаем разбираться старые анекдоты.....
То у меня есть решение проблемы для iluxa1810. Всегда пиши if (x.ToString().Length == 5)
То у меня есть решение проблемы для iluxa1810. Всегда пиши if (x.ToString().Length == 5)
все решает контекст задачи и язык) если это не строго типизированый язык, и у тебя например что-то по умолчанию true (например let asd = true), тебе приходит обект в котором asd опциональный параметр и его не передали - он undefined при проверке if(!params.asd){asd=params.asd} условие выполнится, но по факту не должно и может поломать биз. логику. Потому будем надеяться что мем про c# или с++ )
Да постоянно это такое.
thus - просто промахнулся по букве - "наверное вы имели в виду ThrowingWasUpgradedWriteOnlyStream", да, сука, именно его я и имел в виду.
thus - просто промахнулся по букве - "наверное вы имели в виду ThrowingWasUpgradedWriteOnlyStream", да, сука, именно его я и имел в виду.
Хорошая была бы шутка, но нет :(
Просто ты DecoderReplacementFallbackBuffer редко юзаешь.
просто поставь табнайн
Можно поставить плагин типа codota и таких ситуаций будет поменьше
хоть и немного из другой области, но
select CAST(@IDChair ASCII varchar) в MSSQL заебал неимоверно.
Кто-нить знает как автоподстановку этого говна по нажатию пробела отключить?
select CAST(@IDChair ASCII varchar) в MSSQL заебал неимоверно.
Кто-нить знает как автоподстановку этого говна по нажатию пробела отключить?
if (!x) выбор мастеров, да, товарищи погромисты?
if (x.ToString().Length == 4) {
}
else if (x.ToString().Length == 5) {
}
Выбор очень смуглых экспертов
}
else if (x.ToString().Length == 5) {
}
Выбор очень смуглых экспертов
поправил
if (x instanceof Boolean && ((Boolean) x).toString().length() == 4) {
} else if (x instanceof Boolean && ((Boolean) x).toString().length() == 4) {
}
if (x instanceof Boolean && ((Boolean) x).toString().length() == 4) {
} else if (x instanceof Boolean && ((Boolean) x).toString().length() == 4) {
}
Уже достаточно круто, что даже ошибки пошли, где эли иф должно быть 5, а не 4.
Но вы ещё даже не использовали switch case.
unless x
Мимо ruby-господин.
Мимо ruby-господин.
а для этого языка Intellij Idea не сгодится? кажется, я на нее скоро молиться начну, так хороша)
Для этого языка сгодится Rider от тех же JetBrains.
Чтобы написать коммент, необходимо залогиниться
Отличный комментарий!