Hello, Valentin!
Thursday November 11 2021 23:23, from Valentin Nechayev -> Nil A:
NA>> Так вот, пейшу я ту на Go. А в Go, как вы знаете, нету
NA>> исключений.
VN> Есть, возбуждаются через panic, ловятся через recover.
VN> Hу а что они не называются при этом исключениями и ловятся слегка
VN> через оппу - вопрос к двуличным разработчикам.
Ага, как раз недавно про это прочитал.
Есть драфт дизайн Go 2, там всё крутиться вокруг обработки ошибок, что такое
типа ошибки вообще и ещё про дженерики
https://go.googlesource.com/proposal/+/master/design/go2draft.md
VN> Паника, похоже, дороже возврата значения. Hо всё равно ловится.
Дык в C++ exceptions тоже сильно дороже стоят, чем просто возврат значения.
Поэтому их стоит употреблять как исключения, а не как то, как одно из значений,
которое функция может возвращать.
На другом конце спектра, например, Python, который кидает StopIteration
исключение, для обозначения конца итератора.
Про Гоу. Так ничего язычёк, только совсем мало в функциональном стиле можно
писать. Не хватает питоновского list comprehension, а также просто, чтобы map,
zip,.. можно было в одну строчку писать.
Я прочитал умных книг по современному C++, и уже не помню когда последний раз
писал new/delete руками, только в одно хитром месте писал new placement. Я к
тому, что я теперь если вижу цикл какой-то, то у меня уже руки чещутся на
какой-нибудь стандартный алгоритм из <algorithm> заменить.
Best Regards, Nil