рдЧреЛ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ

рд╣реИрд▓реЛ, рд╣рдмреНрд░реЛрд╕реНрдХ рдирд╛рдЧрд░рд┐рдХреЛрдВ! рдЧреЛрд▓рдВрдЧ рдбреЗрд╡рд▓рдкрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдУрдЯреАрдпреВрдПрд╕ рдореЗрдВ рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИ , рдФрд░ рд╣рдо рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рдкреЛрд╕реНрдЯ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЕрд╡рд╕рд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЬ рд╣рдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЧреЛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЪрд▓реЛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУ!



рдЕрдкрдиреЗ Go рдХреЛрдб рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдорд╛рд╣рд┐рд░




рдпрд╣ рдкреЛрд╕реНрдЯ рдмрд┐рдлреЛрд░ рдЧреЗрдЯрд┐рдВрдЧ рд╕реНрдЯрд╛рд░реНрдЯреЗрдб рд╕реАрд░реАрдЬрд╝ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬрд╣рд╛рдБ рд╣рдо рдЧреЛрд▓рдВрдЧ рдХреА рджреБрдирд┐рдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдЧреЛ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рдЖрдкрдХреЛ рдЙрди рд╕реБрдЭрд╛рд╡реЛрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдзрдХреНрдХреЛрдВ рдореЗрдВ рдирд╣реАрдВ рднрд░рдирд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧреЛ рдХреЗ рд╕рд╛рде рдХрдо рд╕реЗ рдХрдо рдмреБрдирд┐рдпрд╛рджреА рдЕрдиреБрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдЖрдк рдПрдХ рдЕрдкрд░рд┐рдЪрд┐рдд рдЪрд░реНрдЪрд╛ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЖрдП рдереЗ, рддреЛ рд╡рд┐рд░рд╛рдо рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ, рд╡рд┐рд╖рдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдФрд░ рд╡рд╛рдкрд╕ рдЖрдПрдВред

рдЕрдм рдЬрдм рд╣рдордиреЗ рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рд╕рд╛рдл рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдЪрд▓реЗрдВ!

рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЛ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдмрд╕реЗ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдФрд░ рджреБрд░реБрдкрдпреЛрдЧ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдЖрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЧреЛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЬрд╛рдиреЗрдВрдЧреЗ, рдФрд░ рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рд╡реЗ "рд╣реВрдб рдХреЗ рддрд╣рдд" рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдХреБрдЫ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реАрдЦреЗрдВрдЧреЗ, рдЧреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдЯрд╛рдЗрдк рдПрд╕реЗрд░рд┐рдЬрд╝рдиреНрд╕ рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдХреНрдпреЛрдВ рдирд┐рднрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рдЬрд┐рд╕реЗ рдЖрдк рдЧреЛ 2 рдореЗрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред



рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐


рдкрд╣рд▓реА рдЪреАрдЬреЗрдВ рдкрд╣рд▓реА: рдЧреЛ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИрдВред рдбреЗрд╡ рдЪреЗрдиреА рдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдорд╣рд╛рдХрд╛рд╡реНрдп рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд▓рд┐рдЦрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ: рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдЕрдкрд╡рд╛рдж рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЧреЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрдИ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВрдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ , рдФрд░ рдХрдиреНрд╡реЗрдВрд╢рди рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рдПрд░рд░ рдЪрд░ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рдШреЛрд╖рд┐рдд error рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рд╡реЗрд╢рди рджреНрд╡рд╛рд░рд╛, рддреНрд░реБрдЯрд┐ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рд╢реВрдиреНрдп рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЛ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдлреЛрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рд╕рдордЭ рдЬрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛ рдЧрдИ рд╣реИ, рдФрд░ рдЙрд╕реЗ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдЬреЛ рдХреЛрдИ рднреА рдЖрдкрдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕реЗ рдкрд░рд┐рдгрд╛рдо рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рддреНрд░реБрдЯрд┐ рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИ (рд▓реЙрдЧ, рд░рд┐рдЯрд░реНрди, рд░рдЦрд░рдЦрд╛рд╡, рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рд░рд┐рдЯреНрд░реА / рд╕рдлрд╛рдИ рддрдВрддреНрд░, рдЖрджрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ)ред


(3 // рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ
5 // рдЬрд╛рд░реА)

рдпреЗ рд╕реНрдирд┐рдкреЗрдЯ рдЧреЛ рдореЗрдВ рдмрд╣реБрдд рдЖрдо рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдЙрдиреНрд╣реЗрдВ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреЗ рд╣реИрдВред рд╕рдВрдХрд▓рдХ рдЕрдкреНрд░рдпреБрдХреНрдд рдЪрд░ рдХреЛ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдирд╣реАрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЦрд╛рд▓реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╕реМрдВрдкрдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рддрдирд╛ рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреНрдпреЛрдВ рди рд╣реЛ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


(4 // рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЕрдирджреЗрдЦреА рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рдгрд╛рдо рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)
рдкрд░рд┐рдгрд╛рдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рддрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ

рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╣рд╛рд░реНрдб рдЧреЛ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕реА, рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд▓реЗрдЦрди рдХреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдХрд░рддреА рд╣реИред рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдорд╛рди рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдорд╛рди рджреВрд╖рд┐рдд рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдиреЗ рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рд╣реИ рдЬреЛ рд╡рд╣ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛ рд╣реИ, рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЛ рдПрдХ рдЦрд╛рд▓реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╕реМрдВрдкрдХрд░, рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдорд╛рди рджреВрд╖рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рдЦрд╛рд▓реА рдЖрдИрдбреА рдЕрдВрдзреЗрд░реЗ рдФрд░ рднрдпрд╛рд╡рд╣ рд╣реИред

рдЧреЛ рдореЗрдВ panic рдФрд░ recover рдореИрдХреЗрдирд┐рдЬреНрдо рд╣реИрдВ, рдЬреЛ рдПрдХ рдЕрдиреНрдп рд╡рд┐рд╕реНрддреГрдд рдЧреЛ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ рднреА рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рдЗрд░рд╛рджреЗ рд╕реЗ рдирд╣реАрдВ рд╣реИрдВред рдбреЗрд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░, "рдЬрдм рдЖрдк рдЧреЛ рдореЗрдВ рдШрдмрд░рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдШрдмрд░рд╛рддреЗ рд╣реИрдВ: рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЧреЗрдорд░ рд╣реИред" рд╡реЗ рдШрд╛рддрдХ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВред рд░реЙрдм рдкрд╛рдЗрдХ рдиреЗ рдХрд╣рд╛, "рдШрдмрд░рд╛рдУ рдордд," рдЬреЛ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмреЛрд▓рддрд╛ рд╣реИ: рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдЗрди рддрдВрддреНрд░реЛрдВ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

"рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрд░реНрде рд╣реИрдВред"
"рд╕рд┐рд░реНрдл рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╕рдВрднрд╛рд▓реЗрдВред"
"рдШрдмрд░рд╛рдУ рдордд"
рд░реЛрдм рдкрд╛рдЗрдХ рдХреА рд╕рднреА рдмрд╛рддреЗрдВ

рд╣реБрдб рдХреЗ рдиреАрдЪреЗ


рддреНрд░реБрдЯрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕

рд╣реБрдб рдХреЗ рддрд╣рдд, рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрд╛рд░ рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ , рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреЛ рдмреНрд▓реЙрдЧ рдкрд░ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред


рд╕реНрд░реЛрдд рд╕реЗ рддреНрд░реБрдЯрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕

рдЕрдкрдиреА рдЧрд▓рддрд┐рдпрд╛рдБ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ рдЬреЛ Error() string рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдПрдХрд▓ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдПрдХ рд╡реИрдз рддреНрд░реБрдЯрд┐ рдорд╛рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред

рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрд░рд░рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд░рдЪрдирд╛


рддреНрд░реБрдЯрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдФрд░ рд╡реНрдпрд╛рдкрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд errorString рд╕рдВрд░рдЪрдирд╛ рд╣реИред рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред


рд╕реЛрд░реНрд╕: рдЧреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб

рдЖрдк рдпрд╣рд╛рдВ рдЗрд╕рдХрд╛ рд╕рд░рд▓реАрдХреГрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ string , рдФрд░ рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ Error рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреНрд░реБрдЯрд┐ рдХреБрдЫ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ, fmt.Sprintf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ fmt.Sprintf ред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдиреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд▓рд╛рдЧреВ рдХреА рд╣реИрдВред рдирдпрд╛ рдпрд╛ fmt.Errorf , рддреЛ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ ред


(13 // рдЖрдЙрдЯрдкреБрдЯ :)

рдХреЛрд╢рд┐рд╢

github.com/pkg/errors


рдПрдХ рдФрд░ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг pkg / рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкреИрдХреЗрдЬ рд╣реИред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд errors рдкреИрдХреЗрдЬ рд╕реЗ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛ рдерд╛, рдпрд╣ рдкреИрдХреЗрдЬ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рддреНрд░реБрдЯрд┐ рд░реИрдкрд┐рдВрдЧ, рд╡рд┐рд╕реНрддрд╛рд░, рд╕реНрд╡рд░реВрдкрдг рдФрд░ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧред рдЖрдк рдкреИрдХреЗрдЬ go get github.com/pkg/errors рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ go get github.com/pkg/errors ред



рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдбреАрдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдкрдиреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ New рдпрд╛ Errorf рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреЗ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдкрд░ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рднреА рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рд╛рд░реВрдкрдг рдХреНрд╖рдорддрд╛ред Errorf fmt.Formatter рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреА рдЖрдк рдЗрд╕реЗ fmt рдкреИрдХреЗрдЬ ( %s , %v , %+v , рдЖрджрд┐) рдХреЗ рд░рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


(// 6 рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ)

рдпрд╣ рдкреИрдХреЗрдЬ errors.Wrap рднреА рдкрд░рд┐рдЪрдп рджреЗрддрд╛ errors.Wrapf ред рдпреЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╕рдВрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреЗрд╡рд▓ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЗрд╕реЗ рд╕рдВрджрд░реНрдн рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреАрдмрдЧрд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВред



рдЕрдиреНрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рддреНрд░реБрдЯрд┐ рдЖрд╡рд░рдг Cause() error рд╡рд┐рдзрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЙрдирдХреА рдЖрдВрддрд░рд┐рдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ errors.Cause(err error) error рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред errors.Cause(err error) error рдлрд╝рдВрдХреНрд╢рди, рдЬреЛ рд░реИрдкрд┐рдВрдЧ рддреНрд░реБрдЯрд┐ рдореЗрдВ рдореБрдЦреНрдп рдЖрдВрддрд░рд┐рдХ рддреНрд░реБрдЯрд┐ рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред

рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐


рдЕрдиреБрдореЛрджрди рд▓рд┐рдЦреЗрдВ


рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рджреМрд░рд╛рди рдЯрд╛рдЗрдк рджрд╛рд╡реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВред рдЖрдк рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореВрд▓реНрдп рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЪреВрдВрдХрд┐ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, error рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИред

рдЗрд╕рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЗрд╕рдХреЗ рд╕рднреА рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ - x.(T) рдпрджрд┐ x рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред x.(T) рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ x nil рдирд╣реАрдВ рд╣реИ рдФрд░ x рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдорд╛рди T рдХреЗ рдкреНрд░рдХрд╛рд░ рд╣реИ T рдЕрдЧрд▓реЗ рдХреБрдЫ рдЦрдВрдбреЛрдВ рдореЗрдВ, рд╣рдо рдЯрд╛рдЗрдк рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рджреЗрдЦреЗрдВрдЧреЗ - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ T рд╕рд╛рде рдФрд░ рдЯрд╛рдЗрдк T рдХреЗ рдПрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде T


(2 // рдЖрд╢реБрд▓рд┐рдкрд┐ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдмреВрд▓рд┐рдпрди рдЪрд░ рдареАрдХ рд▓рдВрдШрди
3 // рдЖрддрдВрдХ: рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд░реВрдкрд╛рдВрддрд░рдг: рдЗрдВрдЯрд░рдлрд╝реЗрд╕ {} рд╢реВрдиреНрдп рд╣реИ, рди рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдмреВрд▓рд┐рдпрди рдУрдХреЗ рдХреЗ рд╕рд╛рде 6 // рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕
8 // рдШрдмрд░рд╛рддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрдм рдмрдпрд╛рди рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рдареАрдХ рд╣реИ
9 // рдЕрдм рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)

рд╕реИрдВрдбрдмреЙрдХреНрд╕: рдЫреЛрдЯрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ , рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЖрддрдВрдХ

рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдиреЛрдЯ: рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд╛рд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╛ рддреЛ рдПрдХ рдЫреЛрдЯреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреЛ рдХрд┐ рдЕрд╕рдлрд▓ рдХрдерди рд╣реЛрдиреЗ рдкрд░ рдЖрддрдВрдХрд┐рдд рд╣реЛрддрд╛ рд╣реИ) рдпрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде (рдЬреЛ рд╕рдлрд▓рддрд╛ рдпрд╛ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд░реНрдХрд┐рдХ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред рдореИрдВ рд╣рдореЗрд╢рд╛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд▓рдореНрдмреА рд▓реЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдареАрдХ рдЪрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЖрддрдВрдХ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ред


рдЯрд╛рдЗрдк рдЯреА рдЕрдкреНрд░реВрд╡рд▓


рдкреНрд░рдХрд╛рд░ x.(T) рдХрд╛ рдПрдХ рдХрдерди x.(T) рдкреНрд░рдХрд╛рд░ T рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ x T рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ T рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдЧрд╛рд░рдВрдЯреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореВрд▓реНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


(5 ... // рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ x рд░рд┐рд╕реЙрд▓реНрд╡рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ
6 ... // рдпрд╣рд╛рдВ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)

рдпрд╣ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП pkg/errors рдлрд┐рд░ рд╕реЗ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ pkg/errors ред рдЖрдк рдЗрд╕ рддреНрд░реБрдЯрд┐ рдкреИрдХреЗрдЬ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЪрд▓рд┐рдП errors.Cause(err error) error рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред errors.Cause(err error) error рдлрд╝рдВрдХреНрд╢рдиред

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд░рддрдо рддреНрд░реБрдЯрд┐ рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдЧреНрд░рд╕реНрдд рдХрд░рддрд╛ рд╣реИ (рд╡рд╣ рдЬреЛ рдЕрдм рдХрд┐рд╕реА рдЕрдиреНрдп рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдЖрд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ)ред рдпрд╣ рдЖрджрд┐рдо рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдорд╣рд╛рди рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдЖрдк рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВ:


рд╕реНрд░реЛрдд: pkg / рддреНрд░реБрдЯрд┐рдпрд╛рдБ

рдлрд╝рдВрдХреНрд╢рди рддреНрд░реБрдЯрд┐ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдирд╣реАрдВ рдорд╛рди рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЧрд▓рдд рддрд░реНрдХ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдПрдХ рдЖрд╡рд░рдг рддреНрд░реБрдЯрд┐ ( Cause рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд)ред рдЗрд╕рд▓рд┐рдП, Cause рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд▓реВрдк рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмрдпрд╛рди рдХрд░рдХреЗ, рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ cause рдЪрд░ Cause рд╡рд┐рдзрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рддрдХ рдЖрдкрдХреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ рддрдм рддрдХ рд╡рд╣ рдЖрдВрддрд░рд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИред

рдХреЗрд╡рд▓ рдЙрди рддрд░реАрдХреЛрдВ рд╕реЗ рдпреБрдХреНрдд рдПрдХ рд╕рд░рд▓ рд╕реНрдерд╛рдиреАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдХрд░, рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реБрдП, рдЖрдкрдХрд╛ рдХреЛрдб рдЕрдиреНрдп рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рддрд░реНрдХ рдореЗрдВ рдПрдХ рдЬреНрдЮрд╛рдд рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЧрд▓рддреА рд╣реИред рдХреЛрдИ рднреА рдкреНрд░рдХрд╛рд░ рдЬреЛ Error рдФрд░ Cause рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрд╛рд░ рдореЗрдВ Cause рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдордВрджреА рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рджреЛрд╖ рд╣реИ: рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдХреЛрдб рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЖрдкрдХреЗ рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рди рд╣реЛред рдЕрдкрдиреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ рдЬрд╣рд╛рдВ рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдкрддрд▓рд╛ рдФрд░ рд╕рд╛рдл рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЖрдк рдареАрдХ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдЕрдВрдд рдореЗрдВ, рдпрджрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХрднреА-рдХрднреА рдЕрдирд╛рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдПрдХ рдмрдпрд╛рди рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдЙрд╕ рд╡рд┐рдзрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЖрдк рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН v, ok := x.(interface{ F() (int, error) }) ред рдЕрдирд╛рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЯрд╛рдЗрдк рдЯреА рдФрд░ рдЯрд╛рдЗрдк рд╕реНрд╡рд┐рдЪ рдЕрдкреНрд░реВрд╡рд▓



рдореИрдВ рдЗрд╕ рдЦрдВрдб рдХреЛ рджреЛ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдкреИрдЯрд░реНрди рдкреЗрд╢ рдХрд░рдХреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдХрдИ рджреЛрд╖реЛрдВ рдФрд░ рдЬрд╛рд▓ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЖрдо рдирд╣реАрдВ рд╣реИрдВред рдпреЗ рджреЛрдиреЛрдВ рд╣реА рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрдЪреНрдЫреЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдирд╣реАрдВ рд╣реИрдВред

рдкрд╣рд▓рд╛ рдкреНрд░рдХрд╛рд░ рдЕрднрд┐рдХрдерди рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ: рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ T рд╕рд╛рде рдкреНрд░рдХрд╛рд░ x.(T) рдХрд╛ рдПрдХ рдЕрднрд┐рдХрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ x рдХрд╛ рдорд╛рди рдЯрд╛рдЗрдк T , рдпрд╛ рдЗрд╕реЗ T рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ T


(2 // рд╣рдо v рдХрд╛ рдЙрдкрдпреЛрдЧ mypkg.SomeErrorType рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)

рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рд╣реИ рд╕реНрд╡рд┐рдЪ рд╕реНрд╡рд┐рдЪ ред рдкреНрд░рдХрд╛рд░ рд╕реНрд╡рд┐рдЪ рдЖрд░рдХреНрд╖рд┐рдд type рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдпрд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╡реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдЖрдо рд╣реИрдВ, рдЬрд╣рд╛рдВ рдПрдХ рдЪрд░ рддреНрд░реБрдЯрд┐ рдХреЗ рдореВрд▓ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЬрд╛рдирдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


(3 // рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг ...
5 // рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ ...)

рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдмрдбрд╝рд╛ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдХреЛрдб рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рджреЛрдиреЛрдВ рдЙрджрд╛рд╣рд░рдг SomeErrorType рд╕рдВрд░рдЪрдирд╛ (рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП) рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ mypkg рдкреИрдХреЗрдЬ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдореЗрдВ, рдЕрдкрдиреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рдкреИрдХреЗрдЬ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рдЖрдк рд░реИрдкрд░ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ рддреЛ рд╕реНрдерд┐рддрд┐ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдПрдХ рдЖрдВрддрд░рд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдПред


(7 // рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ ...
9 // рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг ...)

рдЯрд╛рдЗрдк рд╕реНрд╡рд┐рдЪ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рд╣реЛрддрд╛ рд╣реИ *MyStruct рдФрд░ MyStruct ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдЖрдк рдПрдХ рд╕рдВрдХреЗрддрдХ рдпрд╛ рдХрд┐рд╕реА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдпрдорд┐рдд рд╕реНрд╡рд┐рдЪ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЯрд╛рдЗрдк рд╕реНрд╡рд┐рдЪ рдореЗрдВ рдорд╛рдорд▓реЗ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рд╕реНрд╡рд┐рдЪ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЯрд╛рдЗрдк рд╕реНрд╡рд┐рдЪ рдореЗрдВ fallthrough рдЙрдкрдпреЛрдЧ рдирд┐рд╖рд┐рджреНрдз рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рднреВрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИред



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЗрдирд╛


рд╡рд╣ рд╕рдм рд╣реИ! рдЕрдм рдЖрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯреА рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдЖрдкрдХрд╛ рдЧреЛ рдПрдкреНрд▓реАрдХреЗрд╢рди рдЖрдкрдХреЗ рдкрде рдкрд░ рдлреЗрдВрдХ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИ)!
рджреЛрдиреЛрдВ errors рдкреИрдХреЗрдЬ рдЧреЛ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рд╡реЗ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рддреНрд░реБрдЯрд┐ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ pkg/errors рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░ рдЧреЛ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ pkg/errors ред

рдЬрдм рдЖрдк рд╕рд░рд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рднрд┐рдиреНрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдПрдХ рдорд╣рд╛рди рдЙрдкрдХрд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рддреЛ рдЯрд╛рдЗрдк рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдпрд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


Go рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдЕрдм рдмрд╣реБрдд рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред рдЕрдм рдЬрдм рдЖрдкрдХреЛ рдореВрд▓ рдмрд╛рддреЗрдВ рдорд┐рд▓ рдЧрдИ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рдХрд┐ рдЧреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ!

рдЧреЛ 2 рдХрд╛ рдЕрдЧрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреНрд░рд╛рдлреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, dotGo 2019 рдХреЗ рджреМрд░рд╛рди , Marcel van Lojuizen рдиреЗ рдПрдХ рдРрд╕реЗ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдмрд╛рддрдЪреАрдд рдХреА, рдЬрд┐рд╕реЗ рдореИрдВ рдЕрднреА рд╕реБрдЭрд╛ рдирд╣реАрдВ рд╕рдХрддрд╛ - рд▓реЗрдХрд┐рди "GO 2 рддреНрд░реБрдЯрд┐ рдорд╛рди" рдЖрдЬ ред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХрдИ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдпреБрдХреНрддрд┐рдпрд╛рдВ рдФрд░ рдЯреНрд░рд┐рдХреНрд╕ рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрди рд╕рднреА рдХреЛ рдПрдХ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ! рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕рдХрд╛ рдЖрдирдВрдж рд▓рд┐рдпрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдЧреЗрдЯрд┐рдВрдЧ рд╕реНрдЯрд╛рд░реНрдЯрд┐рдВрдЧ рдХреЗ рдЕрдЧрд▓реЗ рдПрдкрд┐рд╕реЛрдб рдореЗрдВ рджреЗрдЦреВрдВрдЧрд╛!

рдФрд░ рдЕрдм рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред

Source: https://habr.com/ru/post/hi453806/


All Articles