макросы бы еще =)
try ещё обещают
ну не совсем try
Нее. Это уже перебор какой-то
ну прямо try, если псевдокоду верить func f(…)(r1 type_1, …, rn type_n, err error) { // Проверяемая функция // Возвращает n+1 результатов: r1... rn, err типа error. } func g(…)(…, err error) { // Вызов функции f() с проверкой ошибки: … x1, x2,… xn = try(f(…)) // Используется встроенная конструкция try: // если f() вернула в последнем результате не nil, то g() автоматически завершится, // вернув в СВОЁМ последнем результате это же значение. … } func t(…)(…, err error) { // Аналог g() без использования нового синтаксиса: t1, t2,… tn, te := f(…) // Вызов f() с сохранением результатов во временных переменных. if te != nil { // Проверка кода возврата на равенство nil err = te // Если код возврата - не nil, то он записывается в последний результат t(), return // после чего t() немедленно завершается. } // Если ошибки не было, x1, x2,… xn = t1, t2,… tn // … переменные x1…xn получают значения // и исполнение t() продолжается. … }
что это за дичь? Есть draft https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling-overview.md
https://go.googlesource.com/proposal/+/master/design/32437-try-builtin.md
вот это точно нахуй не надо
Его вроде закрыли и закопали
ну и хорошо, автор явно не в себе был, когда придумал это
да в го ещё много чего можно _упростить_
Обсуждают сегодня