рдЬрдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХрджрдо

рдЫрд╡рд┐


рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВ рдПрдХ рдирдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ Rust рд╕реЗ рдорд┐рд▓рд╛ред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╡рд╣ рджреВрд╕рд░реЛрдВ рд╕реЗ рдЕрд▓рдЧ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВ рдкрд░рд┐рдгрд╛рдо рдФрд░ рдЕрдкрдиреЗ рдЗрдВрдкреНрд░реЗрд╢рди рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:


  • рдореИрдВ рдореБрдЦреНрдп рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЬрдВрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
  • рдореИрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛
  • рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рд░рд╕реНрдЯ рдХреЛ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд▓реЗрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ

рдореИрдВ рдЕрднреА рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рд▓рдЧрднрдЧ рджрд╕ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рдШрдВрдЯреА рдЯреЙрд╡рд░ рд╕реЗ рдмрд╣рд╕ рдХрд░реВрдВрдЧрд╛ред


рд╣рддреНрдпрд╛рд░рд╛ рд╕реБрд╡рд┐рдзрд╛


Rust рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛рдУрдВ рдЬреИрд╕реЗ C / C ++ рдФрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп Java / C # / Python / Ruby ... рдХреЗ рдмреАрдЪ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рд╕реНрдерд┐рддрд┐ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ ... рднрд╛рд╖рд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдЬрд┐рддрдирд╛ рдХрд░реАрдм рд╣реЛрддреА рд╣реИ, рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг, рдпрд╣ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдХреЛрдб рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рдкреИрд░ рдХреЛ рд╢реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рддрдХ рдкреВрд░реА рдкрд╣реБрдВрдЪ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд╕реА / рд╕реА ++ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдкрд╛рдпрдерди / рдЬрд╛рд╡рд╛ рдФрд░ рд╢реЗрд╖ рд╕рднреА рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдЙрдиреНрд╣реЗрдВ рдореЗрдореЛрд░реА рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдмреБрд░реА рдмрд╛рдд рдПрдирдкреАрдИ рд╣реИ, рд▓реАрдХ рдпрд╣ рдЖрдо рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо, рдПрдХ рдХрдЪрд░рд╛ рдЙрдард╛рдиреЗ рд╡рд╛рд▓реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░, рдЕрдкрдиреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реБрдП, рдЕрдкрдирд╛ рдЬреАрд╡рди рдЬреАрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдЕрднреА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдХрд┐рддрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рдирд╣реАрдВ рдмрдврд╝рд╛рдпрд╛ рд╣реИред


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


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


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


fn main() { test(); println!("End of main") } fn test() { let a = MyStruct { v: 1, s: Box::new( Some(MyStruct { v: 2, s: Box::new(None), }) ), }; println!("End of test") } struct MyStruct { v: i32, s: Box<Option<MyStruct>>, } impl Drop for MyStruct { fn drop(&mut self) { println!("Cleaning {}", self.v) } } 

рдирд┐рд╖реНрдХрд░реНрд╖ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:


 End of test Cleaning 1 Cleaning 2 End of main 

рдпрд╛рдиреА рдкрд░реАрдХреНрд╖рдг () рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ , рдореЗрдореЛрд░реА рдХреЛ рдкреБрди: рд╕рд╛рдлрд╝ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдВрдХрд▓рдХ рдиреЗ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдбрд╛рд▓рдХрд░ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ред рдмреЙрдХреНрд╕ рдФрд░ рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИ, рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд╡рд░реНрдгрди рдХрд░реЗрдЧрд╛ред


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


рдФрд░ рдХреНрдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ


рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ, рдорд╣рддреНрд╡ рдХреЗ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рднрд╛рд╖рд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реВрдВрдЧрд╛ред


OOP


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


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


 fn main() { MyPrinter { value: 10 }.print(); } trait Printer { fn print(&self); } impl Printer { fn print(&self) { println!("hello!") } } struct MyPrinter { value: i32 } impl Printer for MyPrinter { fn print(&self) { println!("{}", self.value) } } 

рдЬрд┐рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдореИрдВрдиреЗ рдЧреМрд░ рдХрд┐рдпрд╛, рд╡реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ:


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

рдХреБрдЫ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛


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


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


 let mut x = Some(2); let y = x.take(); assert_eq!(x, None); assert_eq!(y, Some(2)); 

рд╕реНрдерд╛рдирд╛рдВрддрд░рдг


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


 pub enum Option<T> { None, Some(T), } 

рдРрд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрдорд╛рдг рд╣реИ:


 fn main() { let a = Some(1); match a { None => println!("empty"), Some(v) => println!("{}", v) } } 

рд╕рд╛рде рд╣реА


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


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

рдорд░рд╣рдо рдореЗрдВ рдЙрдбрд╝рдирд╛


рдпрд╣ рдЕрдиреБрднрд╛рдЧ рдЪрд┐рддреНрд░ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред


рд╣рддреНрдпрд╛рд░реЗ рдХреА рд╕рдорд╕реНрдпрд╛


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


  • рдмреЙрдХреНрд╕ - рдвреЗрд░ рдкрд░ рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдореВрд▓реНрдп, рдЬрд╛рд╡рд╛ рдореЗрдВ рдЖрджрд┐рдо рдХреЗ рд▓рд┐рдП рд░реИрдкрд░ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ
  • рд╕реЗрд▓ - рдЪрд░ рдореВрд▓реНрдп
  • RefCell - рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рд╕реБрд▓рдн рдЪрд░ рдорд╛рди
  • рдЖрд░рд╕реА - рд╕рдВрджрд░реНрдн рдХрд╛рдЙрдВрдЯрд░, рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рдХрдИ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП

рдФрд░ рдпрд╣ рдПрдХ рдЕрдзреВрд░реА рд╕реВрдЪреА рд╣реИред рдкрд╣рд▓реЗ рдЬрдВрдЧ рдХреЗ рдирдореВрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд▓рд╛рдкрд░рд╡рд╛рд╣реА рд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЛрдВ рд╕реЗ рдПрдХ рдПрдХрд▓ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЕрдВрдд рдореЗрдВ, рдиреЛрдб рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк <Rc <RefCell <ListNode> >> :


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

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


 struct ListNode { val: i32, next: Node, } pub struct LinkedList { root: Node, last: Node, } type Node = Option<Rc<RefCell<ListNode>>>; impl LinkedList { pub fn add(mut self, val: i32) -> LinkedList { let n = Rc::new(RefCell::new(ListNode { val: val, next: None })); if (self.root.is_none()){ self.root = Some(n.clone()); } self.last.map(|v| { v.borrow_mut().next = Some(n.clone()) }); self.last = Some(n); self } ... 

рдХреЛрдЯрд▓рд┐рди рдкрд░, рдПрдХ рдмрд╣реБрдд рд╕рд░рд▓ рджрд┐рдЦрддрд╛ рд╣реИ:


 public fun add(value: Int) { val newNode = ListNode(null, value); root = root ?: newNode; last?.next = newNode last = newNode; } 

рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рдРрд╕реА рд╕рдВрд░рдЪрдирд╛рдПрдВ рд░реВрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдореЗрд░рд╛ рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреИрд░-рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рд╣реИред рд▓реЛрдЧ рднреА рдкреВрд░реЗ рд▓реЗрдЦ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:



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


рд╕реАрдЦрдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ


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


рдЕрдВрдд рдореЗрдВ


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


рдпрд╣ рдХрд░реЗрдВ


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


рдЖрджрд░


рдпрджрд┐ рдЖрдк рд░реВрд╕реНрдЯ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдХреБрдЫ рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ:



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

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


All Articles