- 1
- 2
- 3
if err != nil {
return nil, err
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
if err != nil {
return nil, err
}
Как же заебало
ASD_77 15.12.2021 16:34 # 0
bormand 15.12.2021 17:38 # +2
3.14159265 15.12.2021 21:28 # +1
bormand 15.12.2021 23:45 # 0
orion 21.12.2021 21:53 # 0
JaneBurt 16.12.2021 22:14 # +1
orion 21.12.2021 21:51 # 0
CHayT 15.12.2021 20:14 # +3
bormand 15.12.2021 20:17 # +3
CHayT 15.12.2021 20:19 # +1
bormand 15.12.2021 20:22 # 0
Fike 16.12.2021 22:20 # 0
guest6 15.12.2021 23:05 # +3
Пора первые выёбываются, вторые просто пишут код
gEKA6PbCKuu_nemyx 15.12.2021 23:06 # +2
3.14159265 15.12.2021 23:15 # +1
3.14159265 15.12.2021 23:17 # +3
JaneBurt 16.12.2021 22:13 # 0
Directed by Robert B Weide
Fike 16.12.2021 22:19 # +1
vistefan 15.12.2021 23:42 # +3
3oJIoTou_xyu 16.12.2021 05:43 # 0
guest6 16.12.2021 07:33 # 0
gEKA6PbCKuu_nemyx 16.12.2021 08:09 # 0
JloJle4Ka 16.12.2021 14:05 # +1
gEKA6PbCKuu_nemyx 16.12.2021 14:38 # 0
JloJle4Ka 16.12.2021 14:58 # 0
В «Nim», кстати, и массивы есть:
var a = @[1, 2, 3]
JloJle4Ka 16.12.2021 15:08 # +1
let a = @[1, 2, 3]
gEKA6PbCKuu_nemyx 16.12.2021 16:20 # +1
Ещё есть объекты. В семёрке можно создавать экземпляр анонимного класса:
В семёрке появилось расширение «Ds» со структурами данных, как в серьёзных ЯП:
https://www.php.net/manual/ru/book.ds.php
gEKA6PbCKuu_nemyx 16.12.2021 16:21 # +1
JloJle4Ka 16.12.2021 17:04 # +1
Пишут такое про туплы:
Tuples are very much like what you have seen so far from objects. They are value types where the assignment operator copies each component. Unlike object types though, tuple types are structurally typed, meaning different tuple-types are equivalent if they specify fields of the same type and of the same name in the same order.
The constructor () can be used to construct tuples. The order of the fields in the constructor must match the order in the tuple's definition. But unlike objects, a name for the tuple type may not be used here.
Like the object type the notation t.field is used to access a tuple's field. Another notation that is not available for objects is t[i] to access the i'th field. Here i must be a constant integer.
А такое про массивы:
An array is a simple fixed-length container. Each element in an array has the same type. The array's index type can be any ordinal type.
Arrays can be constructed using []
Получается, что туплы круче массивов?
gEKA6PbCKuu_nemyx 16.12.2021 20:59 # +1
1. Туплами можно заменять записи (структуры), потому что элемент доступен как t.field.
2. Туплами можно заменять массивы, потому что элемент доступен как t[i].
То есть туплы — это более общий, более универсальный тип данных.
bormand 16.12.2021 21:03 # +2
Массивы не заменить из-за иммутабельности поди? Или они мутабельные?
gEKA6PbCKuu_nemyx 20.12.2021 06:56 # +1
JloJle4Ka 20.12.2021 09:42 # 0
gEKA6PbCKuu_nemyx 20.12.2021 09:44 # +1
JloJle4Ka 20.12.2021 09:48 # 0
Rooster 17.12.2021 11:51 # 0
3.14159265 20.12.2021 06:14 # 0
Фу как пошло. В Сишке же есть errno.
Ждём когда goвнючки прибегут с восторженным лицом:
— Я вам принес новую фичу, это такой thread local код ошибки, который сохраняется между вызовами.
— Это уже было в Симпсшке. См. extern int errno;
ASD_77 20.12.2021 14:03 # 0
Soul_re@ver 20.12.2021 14:18 # 0
guest6 16.12.2021 11:39 # +5
Soul_re@ver 16.12.2021 11:41 # +1
bormand 16.12.2021 15:18 # +3
JloJle4Ka 16.12.2021 15:31 # +1
guest6 16.12.2021 18:33 # +3
bormand 16.12.2021 18:57 # 0
Fike 16.12.2021 22:21 # 0
JaneBurt 16.12.2021 22:33 # +2
bormand 16.12.2021 22:39 # +1
О блин, паника не смертельна, можно обработать как исключение?
JloJle4Ka 17.12.2021 05:52 # +5
1024-- 17.12.2021 10:45 # +3
* Флудит (копипастит даже комментарии с ГК на ГК) и троллит
* Угнетает определённые группы людей (геев, затем вореционеров, теперь женщин)
* Пишет в нравоучительном тоне
JaneBurt 17.12.2021 13:21 # +1
1024-- 17.12.2021 14:18 # +2
j123123 17.12.2021 14:20 # +4
Написанную Стертором хуйню тут принято скрывать юзерскриптами
ObeseYoung 17.12.2021 17:41 # −1
ObeseYoung 17.12.2021 17:37 # −2
JaneBurt 17.12.2021 13:20 # 0
j123123 17.12.2021 14:22 # +4
j123123 17.12.2021 16:16 # +3
bormand 17.12.2021 16:17 # +2
Слишком старая, видимо.
Soul_re@ver 17.12.2021 17:10 # +4
Ейму
bormand 17.12.2021 17:43 # +3
Рейму.
JaneBurt 19.12.2021 22:28 # −1
Им
ObeseYoung 19.12.2021 23:57 # 0
1024-- 21.12.2021 09:25 # +1
JloJle4Ka (оно/(н)его/(н)ему/(н)его/ним/нём)
P.S. А что, в русском языке одно и то же слово в одном и том же падеже может быть в двух разных формах, и это не только питушня вроде более-менее вариативного "в мёде/в меду", "тобой/тобою", а именно две разные формы, ни одну из которых нельзя выкинуть? Какой пипец, как этот язык вообще учат.
JaneBurt 19.12.2021 22:29 # −1
JloJle4Ka 20.12.2021 00:37 # 0
Потому что пиструнчика уже нет, п вот проблемы-то остались!
bormand 20.12.2021 00:57 # +1
ASD_77 20.12.2021 01:32 # +3
gEKA6PbCKuu_nemyx 20.12.2021 06:55 # +1
Приготовь крафтпакет для блевотины. Некоторые пол меняют после 50, так что суицид совершают уже на пенсии.
JloJle4Ka 20.12.2021 10:04 # 0
https://youtu.be/rJWDISzOVpc
Soul_re@ver 20.12.2021 10:22 # +4
Технически это всё ещё после 27
1024-- 21.12.2021 09:37 # +1
Steve_Brown 20.12.2021 11:55 # +4
Потому что в армию все равно не призвали.
1024-- 21.12.2021 09:38 # +1
JloJle4Ka 21.12.2021 11:25 # +1
bormand 16.12.2021 11:50 # +2
JaneBurt 16.12.2021 22:19 # +1
kcalbCube 09.06.2022 20:55 # 0
JaneBurt 16.12.2021 22:12 # +1
JaneBurt 16.12.2021 22:16 # 0
Soul_re@ver 16.12.2021 22:21 # 0
bormand 16.12.2021 22:24 # 0
Мистер Хэнки 17.12.2021 11:03 # +3
1024-- 17.12.2021 12:23 # +2
Монады в Haskell, промисы в JS, исключения в python позволяют писать без ошибок, ошибки сами как-то обрабатываются.
JaneBurt 19.12.2021 22:36 # +1
JaneBurt 17.12.2021 13:18 # +1
3.14159265 20.12.2021 06:10 # +1
Предлагаю взять язык для белых.
As of PHP 7.1.0, a catch block may specify multiple exceptions using the pipe (|) character. This is useful for when different exceptions from different class hierarchies are handled the same.
gEKA6PbCKuu_nemyx 20.12.2021 06:14 # +2
3.14159265 20.12.2021 06:00 # +3
И в то же время не имеют нормальных механизмов педерачи ошибок по стеку без синтаксического мусора и бойлерплейта.
Вместо них какие-то err, unwrap и паники.
Напомню что во всех нормальных промышленных языках, абсолютно везде есть try~catch~finally
Так же сделано автозакрытие ресурсов: try-with-resources в «Java», with в «Python», using в C# итд.
Но есть анскильные неудачники решили как обычно пойти своим путём, но опять обосрались.
А всё потому что не слушали мудрые напутствия Царя.
3.14159265 20.12.2021 06:00 # +2
Сектант понимает, что он бездарность и ничего не может, как и его недоязычок. Именно поэтому он пытается эмулировать семантику исключений и рассчитано это на то, что сторонний наблюдатель подумает “да это же исключения”, но нет. Это не исключения - это паника.
Т.е. если я могу спокойно игнорировать и использовать исключения в С++-коде, то сектант не может сделать тоже самое. Я могу обработать исключения, если меня не устраивает “паника”. Сектанты же не может. Есть какие-то нелепые попытки ловить паники, но они не юзабельны.
Так же )? - обезьяну научили очередному трюку и она везде это пихает. Опять же ситуация в том, что это не обработка ошибок. Ошибка должна быть снабжена информацией об ошибке - здесь же никакой информации нет. Любая попытка её добавить ломается, т.к. это говно не может в вывод типов, а даже если бы могло - это никак не поможет.
Если проще. Данный синтаксический мусор - это моча в рожи сектантов. Т.е. сектанты блеяли, что у них там супер-обработка ошибок и никаких проблем нет. Но как всегда обделались и никто с них за это не спросил.
Этот синтаксический мусор - это генераций бойлерплейта вида:
if(res.err) return res.err;
Как видим проблемы очевидны. Синтаксический мусор + оверхед + проблемы при возврате разных типов. Если исключения можно кидать произвольного типа и строить какие угодно иерархии, то здесь нужно всё сводить к одному типу. Иначе сломается.
Так же, этот мусор генерирует ещё множество побочного мусора вызванного нелепостью данного недоязычка для плебеев.
orion 21.12.2021 21:58 # 0
guest6 21.12.2021 22:28 # 0
на чем пишешь?
guest6 21.12.2021 22:07 # +2
Эту проблему хорошо решили checked исключения в яже, но к сожалению использовать их для реальных задач нельзя, потому что они довольно быстро засирают весь код.
Я за момомомомомомнадку Either короче
Soul_re@ver 21.12.2021 22:16 # +2
bormand 21.12.2021 22:16 # +3
А вот тут тонкий момент. Если у тебя ошибки не часто (т.е. не сраный питон с его "ааа, массив кончился!", а что-то более разумное), то исключения могут и дешевле быть т.к. не засирают успешный путь бесполезными сравнениями.
guest6 21.12.2021 22:27 # +1
bormand 21.12.2021 22:30 # 0
CHayT 21.12.2021 22:55 # +1
guest6 21.12.2021 22:57 # 0
bormand 21.12.2021 22:57 # 0
Ну можно конвертить в более высокоуровневые. В общем-то джависты и с исключениями так делают.
CHayT 21.12.2021 23:01 # 0
bormand 21.12.2021 23:09 # 0
guest6 20.12.2021 16:35 # 0
I'll keep this one short and sweet.
Nobody knows how to correctly install and package Python apps. If you write an internal tool in Python, it either needs to be totally portable or just write it in Go or Rust. Save yourself a lot of heartache as people struggle to install the right thing.
gEKA6PbCKuu_nemyx 20.12.2021 16:53 # 0