рдХреНрдпрд╛ рдПрдХ OOP рднрд╛рд╖рд╛ рд╣реИ?

рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рд░реЛрдорди рдЕрдВрдХ рд╣реИред
- рд░реЛрдм рдкрд╛рдЗрдХ, рдЧреЛ рдХреЗ рд▓реЗрдЦрдХред



рдЫрд╡рд┐



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



1. рдкрд░рд┐рдЪрдп



рддреЛ "рд╡рд╕реНрддреБ рдЙрдиреНрдореБрдЦ" рд╣реЛрдиреЗ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдЖрдЗрдП OOP рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рджреЗрдЦреЗрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред

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



рдЖрдк рд╢рд╛рдпрдж рд╕рд┐рдорд╛рд▓рд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рди рд╣реЛрдВ, рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрджреЗрд╣ рдХреЗ, рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдРрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдкреНрд░реЗрд░рдгрд╛ рдмрди рдЧрдИ рд╣реИ - рдЬрд╛рд╡рд╛, рд╕реА ++, рд╕реА # рдФрд░ рд╕реНрдореЙрд▓рдЯрд╛рдХ, рдЬреЛ рдмрд╛рдж рдореЗрдВ, рдмрджрд▓реЗ рдореЗрдВ, рдЙрджреНрджреЗрд╢реНрдп-рд╕реА, рдкрд╛рдпрдерди рд╕реЗ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдПред , рд░реВрдмреА, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╕реНрдХрд╛рд▓рд╛, рдкреАрдПрдЪрдкреА, рдкрд░реНрд▓ ... рдкреВрд░реА рд╕реВрдЪреА рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рд▓реЛрдХрдкреНрд░рд┐рдп рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛рдПрдБ рд╣реИрдВред рдпрд╣ рдкреНрд░рддрд┐рдорд╛рди рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдореЗрдВ рдЗрддрдирд╛ рджреГрдврд╝рддрд╛ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдХрднреА рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ред



рдЪреВрдВрдХрд┐ рдУрдУрдкреА рдХреА рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрд╡реАрдХреГрдд рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЪрд░реНрдЪрд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред



рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдб рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╕рд┐рд╕реНрдЯрдо рдЙрдиреНрд╣реЗрдВ "рдСрдмреНрдЬреЗрдХреНрдЯ" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛрдбрд╝рддреА рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдЕрдореВрд░реНрдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░рд╛рдЬреНрдп (рдбреЗрдЯрд╛) рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ (рдХреЛрдб) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред


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



рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рдЧреЛ рд╡рд╕реНрддреБрдУрдВ, рдмрд╣реБрд░реВрдкрддрд╛ рдФрд░ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред



2. рд╡рд╕реНрддреБрдПрдВ?



Go in object



рдирд╛рдо рдХреА рдХреЛрдИ рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЯрд╛рдЗрдк object



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



рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрд░рдЪрдирд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд╛рдорд┐рдд рдлрд╝реАрд▓реНрдб рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВред



рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:

 type rect struct { width int height int } func (r *rect) area() int { return r.width * r.height } func main() { r := rect{width: 10, height: 5} fmt.Println("area: ", r.area()) }
      
      





рдкрд╣рд▓рд╛ рдмреНрд▓реЙрдХ рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 2 рдкреВрд░реНрдгрд╛рдВрдХ рдлрд╝реАрд▓реНрдб рд╣реЛрддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛ рдмреНрд▓реЙрдХ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ area



рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ rect



рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

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



рдХреЗ рдорд╛рди рдкрд░ рдлрд╝рдВрдХреНрд╢рди area



рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред



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

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



2. рд╡рд┐рд░рд╛рд╕рдд рдФрд░ рдмрд╣реБрд░реВрдкрддрд╛



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



2.1ред рд╕рд░рд▓ рдФрд░ рдХрдИ рд╡рд┐рд░рд╛рд╕рдд

рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдПрдХ рднрд╛рд╖рд╛ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдореМрдЬреВрджрд╛ (рдЖрдзрд╛рд░) рд╡рд░реНрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдП рд╡рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмреЗрд╕ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╡рд┐рд░рд╛рд╕рдд рдХреА рджреЛ рдХрд┐рд╕реНрдореЗрдВ рд╣реИрдВред рдПрдХрд╛рдзрд┐рдХ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдХреЗ рд╣реА рдореВрд▓рднреВрдд рдЕрдВрддрд░ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдПрдХрд▓ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдПрдХ рдкреЗрдбрд╝ рд╣реИ, рдЬрдмрдХрд┐ рдПрдХрд╛рдзрд┐рдХ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдПрдХ рдЬрд╛рд▓реА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдмреЗрд╣рдж рд╕рд░рд▓ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ PHP, C #, Java рдФрд░ рд░реВрдмреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрдмрдХрд┐ рдХрдИ рднрд╛рд╖рд╛рдПрдВ рдЬреЛ рдХрдИ рд╡рд┐рд░рд╛рд╕рддреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ, рдЙрдирдореЗрдВ рдкрд░реНрд▓, рдкрд╛рдпрдерди рдФрд░ C ++ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред



2.2ред рдЙрдкрдкреНрд░рдХрд╛рд░ рдмрд╣реБрд░реВрдкрддрд╛

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



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



2.3ред рд░рдЪрдирд╛

рд░рдЪрдирд╛ рдореЗрдВ, рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕рдореЗрдВ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╕рдорд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд╣реИ-рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╡рд╕реНрддреБрдПрдВ рд╕рджрд╕реНрдпрддрд╛ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдзреАрди рд╣реЛрддреА рд╣реИрдВред



3. рдХреНрдпрд╛ рдЧреЛ рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рд╣реИ?



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



4. "рд╕рд░рд▓ рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдмрд╛рд╣рд░ рдлреЗрдВрдХрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ"



рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВ рдПрдХ JavaWorld рд▓реЗрдЦ рд╕реЗ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рджреВрдВрдЧрд╛ - "рдХреНрдпреЛрдВ рдмреБрд░рд╛рдИ рдлреИрд▓рддреА рд╣реИ" :

рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдкрд░ рдЪрд╛рд░ рдЧрд┐рд░реЛрд╣реЛрдВ рдХреА рдкреБрд╕реНрддрдХ рд╡рд┐рд╕реНрддрд╛рд░ (рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдлреИрд▓реА рд╣реБрдИ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░рддреА рд╣реИред



рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдПрдХ рдЬрд╛рд╡рд╛ рд╕рдореВрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдПрдХ рд╕рднрд╛ рдХрд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛, рдЬрд╣рд╛рдБ рдЬреЗрдореНрд╕ рдЧреЛрд╕рд▓рд┐рдВрдЧ (рдЬрд╛рд╡рд╛ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛) рдХреЛ рдПрдХ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдпрд╛рджрдЧрд╛рд░ рдХреНрдпреВ рдПрдВрдб рдП рд╕рддреНрд░ рдХреЗ рджреМрд░рд╛рди, рдХрд┐рд╕реА рдиреЗ рдЙрдирд╕реЗ рдкреВрдЫрд╛: "рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреНрдпрд╛ рдмрджрд▓реЗрдВрдЧреЗ?" "рдореИрдВ рдХрдХреНрд╖рд╛рдПрдВ рдлреЗрдВрдХ рджреВрдВрдЧрд╛," рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ред рд╢реНрд░реЛрддрд╛рдУрдВ рдореЗрдВ рд╣рдВрд╕реА рдХреЗ рдорд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдордЭрд╛рдпрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╕рд╛рде (рд╕рдВрдмрдВрдз рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░)ред рдЗрдВрдЯрд░рдлреЗрд╕ (рд▓рд╛рдЧреВ рд╕рдВрдмрдВрдз) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдЯрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


5. рдЧреЛ рдореЗрдВ рд╡рд╕реНрддреБ рд╕рдВрдмрдВрдз



5.1ред рдкреНрд░рдХрд╛рд░ рд░рдЪрдирд╛

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

 type Person struct { Name string Address Address } type Address struct { Number string Street string City string State string Zip string } func (p *Person) Talk() { fmt.Println("Hi, my name is", p.Name) } func (p *Person) Location() { fmt.Println("Im at", p.Address.Number, p.Address.Street, p.Address.City, p.Address.State, p.Address.Zip) } func main() { p := Person{Name: "Steve"} p.Address = Address{ Number: "13", Street: "Main" } p.Address.City = "Gotham" p.Address.State = "NY" p.Address.Zip = "01313" p.Talk() p.Location() }
      
      





рдкрд░рд┐рдгрд╛рдо:

 > Hi, my name is Steve > Im at 13 Main Gotham NY 01313
      
      





play.golang.org/p/5TVBDR7AYo



рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ Person



рдЕрдВрджрд░ рдкрддрд╛ рдПрдХ рдЕрд▓рдЧ рдЗрдХрд╛рдИ рдмрдирд╛ рд░рд╣реЗред main



рдХрд╛рд░реНрдп рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ p.Address



рдХреЛ рдПрдбреНрд░реЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреИрд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ p.Address



рдФрд░, рдПрдХ рдбреЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдХреЗ, рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВред



5.2ред рдЙрдк-рдкреНрд░рдХрд╛рд░ рдмрд╣реБрд░реВрдкрддрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг



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



рдПрдХ-рдПрдХ рд╕рдВрдмрдВрдз рдмрдирд╛рдирд╛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡реНрдпрдХреНрддрд┐ ( Person



) рдХреЛ рдмреЛрд▓рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдПрдВред Citizen



рдПрдХ рд╡реНрдпрдХреНрддрд┐ ( Person



) рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рднреА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдмрд╛рдд рдХрд░реЗрдВ ( Talk



)ред рд╣рдо рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

 type Citizen struct { Country string Person //     } func (c *Citizen) Nationality() { fmt.Println(c.Name, "is a citizen of", c.Country) } func main() { c := Citizen{} c.Name = "Steve" c.Country = "America" c.Talk() c.Nationality() }
      
      





рдкрд░рд┐рдгрд╛рдо:

 > Hi, my name is Steve > Steve is a citizen of America
      
      





play.golang.org/p/eCEpLkQPR3



рд╣рдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ Citizen



рд╕рдВрд░рдЪрдирд╛ рдХреНрд╖реЗрддреНрд░ (рдХреЗрд╡рд▓ рдЬрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЕрдирд╛рдо рд╕рдВрд░рдЪрдирд╛ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред Citizen



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

 func (c *Citizen) Talk() { fmt.Println("Hello, my name is", c.Name, "and Im from", c.Country) }
      
      





рдкрд░рд┐рдгрд╛рдо:

 > Hello, my name is Steve and Im from America > Steve is a citizen of America
      
      





play.golang.org/p/jafbVPv5H9



рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдм main



рд╡рд┐рдзрд┐ *Person.Talk()



рдмрдЬрд╛рдп *Person.Talk()



рдХреЙрд▓ рдХрд░рддреА рд╣реИред



6. рдЕрдирд╛рдо рдХреНрд╖реЗрддреНрд░ рдХреНрдпреЛрдВ рдмрд╣реБрд░реВрдкрддрд╛ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ



рдЗрд╕рдХреЗ рджреЛ рдХрд╛рд░рдг рд╣реИрдВред



6.1ред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ

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

 func main() { c := Citizen{} c.Name = "Steve" c.Country = "America" c.Talk() // <-   c.Person.Talk() // <-   c.Nationality() }
      
      





рдкрд░рд┐рдгрд╛рдо:

 > Hello, my name is Steve and Im from America > Hi, my name is Steve > Steve is a citizen of America
      
      







6.2ред рдПрдХ рд╡рдВрд╢ рдкреНрд░рдХрд╛рд░ рдкреВрд░реНрд╡рдЬ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рдмрди рдЬрд╛рддрд╛ рд╣реИ

рдпрджрд┐ рдмрд╣реБрд░реВрдкрддрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдерд╛, рддреЛ рдПрдХ рдЕрдирд╛рдо рдХреНрд╖реЗрддреНрд░ рд╕рдорд╛рд╡реЗрд╢реА рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЧреЛ рдореЗрдВ, рд╢рд╛рдорд┐рд▓ рдФрд░ рд╕рдорд╛рд╡реЗрд╢реА рджреЛрдиреЛрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╣реЗрдВрдЧреЗред рдПрдХ рдмрд╛рд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ, рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдВ:

 type A struct { } type B struct { A // B is-a A } func save(A) { // xxx } func main() { b := &B{} save(b) // OOOPS! b IS NOT A }
      
      





рдкрд░рд┐рдгрд╛рдо:

 > prog.go:17: cannot use b (type *B) as type A in function argument > [process exited with non-zero status]
      
      





play.golang.org/p/EmodogIiQU



рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИрдХрд░ рдиреНрдпреВрдЬрд╝ рдХреА рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж, рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ред



7. рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдкреНрд░рдХрд╛рд░ рдмрд╣реБрд░реВрдкрддрд╛



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



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



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



рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд▓реМрдЯрддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рдирдпрд╛ SpeakTo



рдлрд╝рдВрдХреНрд╢рди SpeakTo



рдФрд░ main



рд╣рдо рдЗрд╕реЗ Citizen



рдФрд░ Person



рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред

 func SpeakTo(p *Person) { p.Talk() } func main() { p := &Person{Name: "Dave"} c := &Citizen{Person: Person{Name: "Steve"}, Country: "America"} SpeakTo(p) SpeakTo(c) }
      
      





рдкрд░рд┐рдгрд╛рдо:

 > Running it will result in > prog.go:48: cannot use c (type *Citizen) as type *Person in function argument > [process exited with non-zero status]
      
      





play.golang.org/p/fkKz0FkaEk



рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рдбрд┐рдЬрд╝рд╛рдЗрди рдмрд╕ рдЧрд▓рдд рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, Citizen



рдПрдХ Person



рдирд╣реАрдВ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдг рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо Human



рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдЗрд╕реЗ SpeakTo



рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕реНрд╡реАрдХреГрдд рдкреНрд░рдХрд╛рд░ SpeakTo



рд╣реИрдВ SpeakTo



рдФрд░ рдЕрдм, рд╕рдм рдХреБрдЫ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реБрдЖред

 type Human interface { Talk() } func SpeakTo(h Human) { h.Talk() } func main() { p := &Person{Name: "Dave"} c := &Citizen{Person: Person{Name: "Steve"}, Country: "America"} SpeakTo(p) SpeakTo(c) }
      
      





рдкрд░рд┐рдгрд╛рдо:

 > Hi, my name is Dave > Hi, my name is Steve
      
      





play.golang.org/p/vs92w57c5-



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдо рдЧреЛ рдореЗрдВ рдмрд╣реБрд░реВрдкрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:





8. рд╕рд╛рд░рд╛рдВрд╢



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



рддреЛ, рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдирдП рдореЙрдбрд▓ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВ - рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд┐рдирд╛!



~ рдЕрдиреБрд╡рд╛рдж рдФрд░ Xlab рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреВрд▓рдиред

рдЗрд╕реЗ рднреА рджреЗрдЦреЗрдВ: "рдХреЛрдб рдХрд╛ рдкреБрди : рдЙрдкрдпреЛрдЧ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд░реЗрдВ"

рд╡реИрд╕реЗ, рдмрд╕ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдЙрджреНрдзрд░рдг рдХреЛ рдпрд╣рд╛рдВ рдЙрджреНрдзреГрдд рдХрд░реВрдВрдЧрд╛:

рдореИрдВрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рд╢рдмреНрдж рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╕реА ++ рдирд╣реАрдВ рдерд╛ред
- рдПрд▓рди рдХреЗ



All Articles