- 1
- 2
- 3
- 4
- 5
- 6
DeliveryTruck t when t.GrossWeightClass switch
{
< 3000 => 10.00m - 2.00m,
>= 3000 and <= 5000 => 10.00m,
> 5000 => 10.00m + 5.00m,
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
DeliveryTruck t when t.GrossWeightClass switch
{
< 3000 => 10.00m - 2.00m,
>= 3000 and <= 5000 => 10.00m,
> 5000 => 10.00m + 5.00m,
}
С каждой новой версией C# всё меньше похож на C# и всё больше на Perl.
если гроссвейткалсс меньше 3к, то 8м
если больше или равен, но меньше пяти ка, то 10
если больше пяти, то 15
Ну и оттабать всё
The result of the switch expression is the value of the expression of the first switch expression arm whose pattern matches the range expression and whose case guard, if present, evaluates to true.
на руби и на перле и даже на котлине такое пишется легко, теперь вот и на шарпе, а на питоне кажется, что будет тупая цепочка унылых ифелозов
Получается такой вот своеобразный свищь из условий и результатов.
Вот у меня массив условий и массив соответствующих результатов. Я итерируюсь по условиям и, если условие выполняется, оставляю результат, чтобы удобнее было – зипаю два этих массива. Правда тут у меня отвратительный скриптушной fallthrough-switch, поэтому в конце там [0], на всякий случай.
Можно было бы и map'ом это сделать, но мне zip больше понравился. Или ты про то, что можно было просто по индексу проитертроваться сразу по джвум массивам?
Поэтому я за гнуси
jooq
вот эта говнина не умеет range types :(
Вот например джанговый орм имеет специальный contrib модуль для поддержки ренджей именно в постгре
Кто-то ещё верит в сказки про переход с одной субд на другую?
На самом деле джаногвские реюзабл аппликешйегны могут быть db agnostic, но конкретный проект, разумеется, нет.
нет, она просто (пока) не осилила некоторые специфичные вещи
такие как юзер домейны и вот некоторые комплексные типы как рейндж
ну и посмотрев как выглядит код, который пишут бекендоёбы, я считаю, что это последний проект, где применялся йоок
А можно ли на компилтайм-крестометушне запилить аналог этого case ranges из GCC, и желательно чтоб это было читабельно (хотя тут я наверно слишком много прошу)?
Может в BOOST что-то подобное есть?
Какой багор )))
дальше компилятор будет уже срать опилками, если в лямблиях не будет совпадать
не?
Plebbit pls go
если INT_MIN ... 2999 то вернем 0
если 3000 ... 5000 то вернем 1
и так далее
А потом по этой хуйне уже обычный свищ, который хуйпойми что делать может. Это можно наметапрограммировать макросней?
if (case.accepts(value))
любимая сишечка