[{"data":1,"prerenderedAt":227},["ShallowReactive",2],{"content:\u002F02-functions-errors\u002Fresources":3},{"title":4,"description":5,"path":6,"body":7},"Дополнительные материалы: функции, defer, ошибки","Подборка русскоязычных видео, статей и справочников для закрепления функций, defer, panic\u002Frecover и современной обработки ошибок в Go.","\u002F02-functions-errors\u002Fresources",{"type":8,"value":9,"toc":220},"minimark",[10,15,28,33,85,89,147,151],[11,12,14],"h1",{"id":13},"дополнительные-материалы","Дополнительные материалы",[16,17,18,19,23,24,27],"p",{},"Подборка русскоязычных видео, статей и справочников для закрепления функций, ",[20,21,22],"code",{},"defer",", ",[20,25,26],{},"panic\u002Frecover"," и современной обработки ошибок в Go.",[29,30,32],"h2",{"id":31},"функции-в-go","Функции в Go",[34,35,36,47,55,63,71],"ul",{},[37,38,39,46],"li",{},[40,41,45],"a",{"href":42,"rel":43},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8pKpMtWCOPA",[44],"nofollow","Функции: основы | ThisIsIT, YouTube"," — русскоязычный урок про объявление функций, параметры, возврат значений и named returns.",[37,48,49,54],{},[40,50,53],{"href":51,"rel":52},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=hqGl88jVZsE",[44],"Функции и методы в языке Golang | OTUS, YouTube"," — разбор функций, методов, анонимных функций, variadic-параметров и замыканий.",[37,56,57,62],{},[40,58,61],{"href":59,"rel":60},"https:\u002F\u002Fmetanit.com\u002Fgo\u002Ftutorial\u002F2.11.php",[44],"Функции и их параметры | METANIT"," — короткая русская справка по синтаксису функций и переменному числу аргументов.",[37,64,65,70],{},[40,66,69],{"href":67,"rel":68},"https:\u002F\u002Fmetanit.com\u002Fgo\u002Ftutorial\u002F2.12.php",[44],"Возвращение результата из функции | METANIT"," — полезно закрепить multiple returns и именованные возвращаемые значения.",[37,72,73,78,79,23,82,84],{},[40,74,77],{"href":75,"rel":76},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F914116\u002F",[44],"Функции и методы в Go | Хабр"," — практические нюансы: receiver value\u002Fpointer, named returns, ",[20,80,81],{},"nil",[20,83,22],{},".",[29,86,88],{"id":87},"defer-в-go","Defer в Go",[34,90,91,109,117,125,136],{},[37,92,93,98,99,101,102,105,106,84],{},[40,94,97],{"href":95,"rel":96},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=wbK_GtZNox8",[44],"Goroutines, Defer, Panic\u002FRecover | ThisIsIT, YouTube"," — видео на русском про порядок выполнения ",[20,100,22],{},", named returns, ",[20,103,104],{},"panic"," и ",[20,107,108],{},"recover",[37,110,111,116],{},[40,112,115],{"href":113,"rel":114},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F118898\u002F",[44],"Обработка ошибок в Go: Defer, Panic и Recover | Хабр"," — русский перевод классической статьи Go Blog; концепции актуальны до сих пор.",[37,118,119,124],{},[40,120,123],{"href":121,"rel":122},"https:\u002F\u002Fmetanit.com\u002Fgo\u002Ftutorial\u002F2.18.php",[44],"Оператор defer и отложенное выполнение функций | METANIT"," — простой материал про LIFO-порядок и освобождение ресурсов.",[37,126,127,132,133,135],{},[40,128,131],{"href":129,"rel":130},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F870146\u002F",[44],"Отмена defer-вызова функции в Golang | Хабр"," — практический разбор того, когда ",[20,134,22],{}," срабатывает и как им управлять.",[37,137,138,143,144,146],{},[40,139,142],{"href":140,"rel":141},"https:\u002F\u002Fmetanit.com\u002Fgo\u002Ftutorial\u002F11.4.php",[44],"Восстановление после ошибки и функция recover | METANIT"," — базовое объяснение, почему ",[20,145,108],{}," работает внутри deferred-функций.",[29,148,150],{"id":149},"ошибки-в-go","Ошибки в Go",[34,152,153,171,190,204,212],{},[37,154,155,160,161,23,164,23,167,170],{},[40,156,159],{"href":157,"rel":158},"https:\u002F\u002Fbalun.courses\u002Fcourses\u002Fgolang_junior\u002Ferrors",[44],"Как создать и использовать собственные типы ошибок в Go | Balun Courses"," — свежая русская статья про ",[20,162,163],{},"%w",[20,165,166],{},"errors.Is",[20,168,169],{},"errors.As",", sentinel errors и кастомные типы ошибок.",[37,172,173,178,179,23,182,23,185,23,187,189],{},[40,174,177],{"href":175,"rel":176},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F904712\u002F",[44],"Ошибки в Go: обработка, обертки и лучшие практики | Хабр"," — обзор ",[20,180,181],{},"error",[20,183,184],{},"fmt.Errorf(\"%w\")",[20,186,166],{},[20,188,169],{}," и custom errors.",[37,191,192,197,198,200,201,203],{},[40,193,196],{"href":194,"rel":195},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F916904\u002F",[44],"Обработка ошибок в Go | Хабр"," — примеры ",[20,199,26],{},", wrapping, ",[20,202,169],{}," и типичных ошибок вроде двойной обработки.",[37,205,206,211],{},[40,207,210],{"href":208,"rel":209},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=XGczuL0bKI4",[44],"Обработка ошибок в Go | Дмитрий Лукиянчук, YouTube"," — доклад с российского Go Meetup про контроль ошибок и архитектурный подход.",[37,213,214,219],{},[40,215,218],{"href":216,"rel":217},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=9a86RFSkBYQ",[44],"Обработка ошибок в Golang до и после v1.20 | SpectrumData dev, YouTube"," — короткое видео про эволюцию обработки ошибок и новые возможности после Go 1.20.",{"title":221,"searchDepth":222,"depth":222,"links":223},"",2,[224,225,226],{"id":31,"depth":222,"text":32},{"id":87,"depth":222,"text":88},{"id":149,"depth":222,"text":150},1781022063720]