Size: a a a

2021 May 09

ID

Iv@n Dereviankin in Go-go!
или изменяют один (или много) из аргументов-указателей, а сама функция возвращает код ошибки
источник

RT

Rostislav Teryaev in Go-go!
Да, в си функция может вернуть код ошибки. Но возвращаемое значение не предназначается исключительно для этого. Чаще функция там может вернуть именно результат. Например функция синуса вернет значение синуса.
Если я верно делаю выводы, то, в том же си, нет средства для работы с ошибками встроенного в язык, а в го он есть. И механизм исключений в плюсах\джаве - это именно аналог панике.
источник

ID

Iv@n Dereviankin in Go-go!
много чего было придумано
источник

M

Mikhail in Go-go!
1) исключения это медленно. Емнип, для try/catch приходится на стеке класть дополнительную информацию и потом при необходимости проходиться по всему стеку, чтобы её найти.
2) это действительно сродни goto и кривой порядок выполнения кода, который иногда бывает сложно отследить. Особенно если исключение перехватывается, а потом выбрасывается снова.
3) некоторые люди начинают вообще всю логику строить на исключениях и используют их как возврат результата, а не как исключительную ситуацию.
источник

ID

Iv@n Dereviankin in Go-go!
встроенного нет. однако это дает сободу действий пишущим (и одновременно головняк использующим)))) )
источник

ID

Iv@n Dereviankin in Go-go!
система ошибок в го — не самая плохая, но как по мне далека от идеалов
источник

RT

Rostislav Teryaev in Go-go!
ну вот как раз такая свобода - чаще зло.
В го тоже можно сделать функцию
func myFunc() int
{ }
и в инте возвращать статус ошибки, но я думаю, все использующие будут крайне удивлены.
источник

M

Mikhail in Go-go!
В си ещё можно передавать дополнительную переменную по ссылке, чтобы в неё клался код ошибки, если такая возникла. Out param такой
источник

ID

Iv@n Dereviankin in Go-go!
не могу не согласиться
источник

ID

Iv@n Dereviankin in Go-go!
угу
источник

ID

Iv@n Dereviankin in Go-go!
я ж говорю, полная свобода
источник

M

Mikhail in Go-go!
Но это скорее проблема единственного возвращаемого результата, а не полная свобода.
источник

M

Mikhail in Go-go!
На вскидку я помню только ещё в lua множественный возвращаемый результат
источник

M

Mikhail in Go-go!
*помимо функциональных языков
источник

RT

Rostislav Teryaev in Go-go!
питон же вроде
источник

M

Mikhail in Go-go!
Там это tuple
источник

M

Mikhail in Go-go!
Т.е. формально это анонимный тип с несколькими полями
источник

m

militska in Go-go!
массивчики/объектики )))

return [ 'result' =>true, 'errors' => []];

а при передаче  через объект на выходе  можно через тип объекты проверить, что пришло, ошибка и  норм результат, получится в целом   аналог:

if err != nil {}
источник

⛪️Поп Гапон⛪️... in Go-go!
Привет, есть у кого пример проекта с чистой архитектурой?
источник

⛪️Поп Гапон⛪️... in Go-go!
Может видели на гитхабе что нибудь интересное или что вам понравилось?
источник