Rust: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХ рдФрд░ рдХреАрд╡рд░реНрдб рддрд░реНрдХ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдЬреВрди 2013  ┬╖  70рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: rust-lang/rust

рдореБрдЭреЗ рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреА, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдпреЛрдЬрдирд╛?


рдиреЛрдЯ: рдмрдЧ рдЯреНрд░реИрдХрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ рд╕рднреА рдбрд┐рдЬрд╝рд╛рдЗрди рдЪрд░реНрдЪрд╛ рдХреЛ рдИрдерд░рдкреИрдб ( https://pad.riseup.net/p/hvbg6dQQnEe7 ) рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВ рдпрд╛ рд╡рд┐рдХреА рдкрд░ рдПрдХ рдмрд╛рдЗрдХрд╢реЗрдбрд┐рдВрдЧ рдкреЗрдЬ рдмрдирд╛рдПрдВред

рдИрдерд░рдкреИрдб:

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЯреНрд░рд╛рдЗрдПрдЬ 2013-08-05: рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ (рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рд╕рд╛рдл-рд╕реБрдерд░реА рд╣реЛрдЧреА; рд╢рд╛рдпрдж рдШреЛрд╖рдгрд╛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреА рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ

fn foo(bar: int, qux: int = 4, ham: Option<int> = None) { ... }

рдЬрд╣рд╛рдВ рдЖрд░рдПрдЪрдПрд╕ рдХреЛрдИ рд╕реНрдерд┐рд░ рдПрдХреНрд╕рдкреАрдЖрд░ рд╣реИ (рдпрд╛рдиреА рдЪреАрдЬреЗрдВ рдЬреЛ static рдШреЛрд╖рдгрд╛ рдореЗрдВ рдорд╛рдиреНрдп рд╣реИрдВ)ред

рд╕рднреА 70 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

fn foo(bar: int, qux=2: int, ham=0: uint) { ... }

рдЬрд┐рд╕реЗ рддрдм foo(1) , foo(1, 3) , foo(1, ham=4) , foo(6, 7, 8) , рдЖрджрд┐ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдХреГрдкрдпрд╛ рдиреАрдЪреЗ huonw рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рджреЗрдЦреЗрдВ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдШреЛрд╖рдгрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИред

рдЯреНрд░рд╛рдЗрдПрдЬ 2013-08-05: рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ (рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рд╕рд╛рдл-рд╕реБрдерд░реА рд╣реЛрдЧреА; рд╢рд╛рдпрдж рдШреЛрд╖рдгрд╛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреА рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ

fn foo(bar: int, qux: int = 4, ham: Option<int> = None) { ... }

рдЬрд╣рд╛рдВ рдЖрд░рдПрдЪрдПрд╕ рдХреЛрдИ рд╕реНрдерд┐рд░ рдПрдХреНрд╕рдкреАрдЖрд░ рд╣реИ (рдпрд╛рдиреА рдЪреАрдЬреЗрдВ рдЬреЛ static рдШреЛрд╖рдгрд╛ рдореЗрдВ рдорд╛рдиреНрдп рд╣реИрдВ)ред

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

рдХреНрдпрд╛ рдпрд╣ рдкрд╣рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реНрдХреЛрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░реНрдп/рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП .. рд╢реВрдиреНрдп рджреЗрдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ ::), рдпрд╛ рдРрд╕реА рдЪреАрдЬрд╝реЗрдВ рд▓рд┐рдЦреЗрдВ рдЬреИрд╕реЗ рд╕реНрд▓рд╛рдЗрд╕(&self, start:uint , end:uint=self.len ()) /* "foobarbaz.slice(6) == "baz" .. or create_window(parent,x,y, width :uint=parent.width ()/4, рдКрдВрдЪрд╛рдИ:uint= (рдЪреМрдбрд╝рд╛рдИ_161)/100) /_ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреЛрд▓реНрдбрди-рдЕрдиреБрдкрд╛рдд рдЖрдХрд╛рд░ рдХреА рд╡рд┐рдВрдбреЛ рд╣реИ, рдФрд░ 1/4 рд╕реНрдХреНрд░реАрди рдЪреМрдбрд╝рд╛рдИ рдпрджрд┐ рдЖрдк рдХреЛрдИ рдЖрдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ .. */ .. .. рдпрд╛ рдпрд╣ рдХреЛрдб рдмреНрд▓реЛрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреБрд╕реНрдЦрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ ..

рд╕реА ++ рд╢реИрд▓реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИрдХреЗрд▓-рдЬреИрд╕реЗ рдЖрдВрд╢рд┐рдХ functoin-рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рдереА?

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

рддреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ @huonw рдХрд╛ рдкреНрдпрд╛рд░рд╛ рдЙрджрд╛рд╣рд░рдг:

fn foo(bar: int, qux: int = 4, ham: Option<int> = None) { ... }

...рд╣рдо рдЗрд╕реЗ foo(1, 2, None) , foo(1, _, Some(1)) , foo(1, _, _) , рдЖрджрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд▓рд╛рдн рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдЕрднреА рднреА рд╕рдЦреНрддреА рд╕реЗ рд╕реНрдерд┐рдд рд╣реИред

рд╢реАрд░реНрд╖рдХ рдХреЛ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХ рдФрд░ рдХреАрд╡рд░реНрдб рддрд░реНрдХ" рдореЗрдВ рдмрджрд▓рдирд╛ред

рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ ast & parser рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛; https://github.com/dobkeratops/rust/compare/default_args , рдХреНрдпрд╛ рдпрд╣ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ? (рд╡рд┐рдХрд▓реНрдк @expr .. рдЗрд╕реЗ expr рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдмрд╛рдзрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА?)
рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреИрд░ рдХреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЛ рдкрд╛рдиреА рдореЗрдВ рдбреБрдмреЛрдирд╛ред
рдореИрдВ рдЗрд╕ рдкрд░ рд╕реА ++ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рд╕реА ++ рд╕реЗ рдпрд╛рдж рдЖрддреА рд╣реИрдВ, рдФрд░ рдирд╛рдорд┐рдд рдХреАрд╡рд░реНрдб рдлреАрдЪрд░ рд╕реА ++ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реЛрдЧрд╛ред
рджреВрд╕рд░реЗ рд╕реБрдЭрд╛рдП рдЧрдП рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЬрд╛рдирд╛ рд╕рд░рд▓ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд▓рдЧ рд░рд╣рд╛ рдерд╛

@dobkeratops рдЬреЛ рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ type Default = Option<@expr> рд╢рд╛рдпрдж рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ)ред

expr рдкрд░ рдмрд╛рдзрд╛рдПрдВ rustc::middle::check_const ; рдЖрдкрдХреЛ check_fn рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рддрд░реНрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред (рд╕рд╛рде рд╣реА, рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЪреЗрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХ рдХреЗрд╡рд▓ рдЕрдВрдд рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ; рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк-рдЪреЗрдХрд░ рдореЗрдВ рдХреБрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП rustc::middle::typeck , рдФрд░ trans рднреАред )

рдареАрдХ рд╣реИ, рдлрд╝реАрд▓реНрдб рдХрд╛ рдирд╛рдо рдЗрд╕рд▓рд┐рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд╣ рдЕрди-рдиреЗрд╕реЗрд░реА рдПрдиреЛрдЯреЗрд╢рди рд╣реЛред
рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рд╣реИ, рдореИрдВ rustc::middle::typeck::.. mod.rs (check_fn some ) рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ред

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

рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рд╣реИ рдпрджрд┐ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдЦрд┐рд▓рд╛рдл_ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ?

рдХрд┐рд╕реА рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬ -Z рд╡рд┐рдХрд▓реНрдк (..Session::debug_opts... рдХреЗ рд╕рд╛рде рдЬрд╛ рд╕рдХрддреА рд╣реИ ...

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

@dobkeratops рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрднреА рддрдХ рдХрд┐рд╕реА рднреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдкреАрдЖрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдБ 1 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪрд░реНрдЪрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП) рдХреНрдпрд╛ рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, 2) рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ 3) рдХреНрдпрд╛ рд╣рдо рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рдЬреЛ рд╢рдмреНрджрд╛рд░реНрде рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреБрдирддреЗ рд╣реИрдВ, рд╡реЗ рдЗрд╕реЗ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ) )

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

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

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

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

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

рдкреВрд░реНрд╡ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢реНрд░рдорд╕рд╛рдзреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд╛рдЧрдд рдкрд░) рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдХреНрд░реЛ-рд╣реИрдХрд░реА рд╕реЗ рджреВрд░ рд╣реЛрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, fmt!() рд▓рд┐рдП рдЖрдЧрд╛рдореА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдпрд╣ рдХрд░рддрд╛ рд╣реИ:

ifmt!("{foo} {1} {bar} {0}", 0, 1, foo=2, bar=3)

рдпрд╣ рдХреЛрдб рд╣реИ рдЬреЛ рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдПрдирд╛рд▓реЙрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рдВрд░рдЪрдирд╛ рдЕрджреНрдпрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

struct Foo { x: int, y: int, z: int }

impl Foo {
    fn default() -> Foo {
        Foo{x: 0, y: 0, z: 0}
    }
}

fn bar(f: Foo) {
    printf!(f);
}

fn main() {
    bar(Foo{y: 5, ..Foo::default()});
}

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдЗрд╕ рд╡рд┐рдзрд┐ рддреБрд░рдд-рдлреБрд░рдд рд╢реЗрд░ рдХрд╣рдХрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХ рдХреА рдХрдореА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрддреАрдд рдореЗрдВ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХрд╛рдлреА рдХреБрд░реВрдк рд╣реИ (рддреБрд▓рдирд╛ bar(Foo{y: 5, ..Foo::default()}) рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП bar(y=5) , рдпрд╛ рдореЗрд░реЗ рд╕реЗ рдЕрдзрд┐рдХ рд░реВрдврд╝рд┐рд╡рд╛рджреА рдкреНрд░рд╕реНрддрд╛рд╡ bar(_, 5, _) ), рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рд╕рднреА рдХреЙрд▓рд░реНрд╕ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ _do_ рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВред

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

[1] https://groups.google.com/d/msg/golang-nuts/NWMReL1HueQ/X9mdYduCOB8J

[2] http://stackoverflow.com/questions/2032149/Optional-parameters

рдореБрдЭреЗ рдпрд╣ рднреА рдмрддрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХреНрд▓реЛрдЬрд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рд╕рдВрджрд░реНрдн рд▓реЗрддрд╛ рд╣реИред

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

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

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

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реА ++ рд╕реЗ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдбрд┐рдлреЙрд▓реНрдЯ рджреЛрдиреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░рддрд╛ рд╣реВрдВ .. рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд░рд╕реНрдЯ рдХреЗ рдЕрдиреНрдп рд╡рд┐рд╢реНрд╡рд╛рд╕реЛрдВ рдФрд░ рд╕реА ++ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╡рд╛рджреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реБрдИ рд╣реИ (рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ 1 рдореБрдЦреНрдп рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдлрдВрд╕рдиреЗ рдХреЗ рдмрд╛рдж ..)

рдПрдХ рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ 'рдкрд╛рд░реНрд╕рд░ рд╣реИрдХ' рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ ... рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕реНрддрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдХреНрд╕рдкреАрдЖрд░ рдХреЛ рдХреЙрд▓ рд╕рд╛рдЗрдЯреНрд╕ рдкрд░ рдЗрдирд▓рд╛рдЗрди рдХрд░рдирд╛ рдЬрд╣рд╛рдВ рддрд░реНрдХ рдЧреБрдо рд╣реИрдВ?
рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдбрд┐рдЬрд╛рдЗрди рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ _impossible_ рдирд╣реАрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЬрдВрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

рдмрд╕ рдЗрд╕рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ: bar(Foo{y: 5, ..Foo::default()}) рдХрд╛ рдЪрддреБрд░ рдкрд╣рд▓реВ рдореБрдЭреЗ ..Foo::default() рд╣рд┐рд╕реНрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рд░реВрдк, рд╢рд╛рдпрдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛ ( Zero рдпрд╛ Default рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА) рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

Foo{y: 5, *) рдЬрд╣рд╛рдВ * рдкрд╣рд▓реЗ ..Foo::default() рдХреА рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИред

рдлрд┐рд░ рдЙрджрд╛рд╣рд░рдг "рдмрд╕" bar(Foo{y: 5, *}) ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧ Foo рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╛рдл рд▓рдЧрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдирдо рдЖрдкрдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдЕрдиреНрдп рддрд░реАрдХреЗ рднреА рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реА ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ... рдФрд░ рдПрдХ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реЗрдЯрдЕрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдмрдирд╛рдиреЗ рдЬреИрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛

@pnkfelix рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ Foo рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рдЖрддреНрдо-рд╡рд░реНрдгрдирд╛рддреНрдордХ рдирд╛рдо рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЖрдкрдХреА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЪреАрдиреА рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

html::start_server(html::ServerOpts{port: 10088, *});

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ HTML рд╕рд░реНрд╡рд░ рдЬреИрд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╢реБрд░реВ рдХрд░рдирд╛ рдореИрдВ рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА server_opts рд╕рдВрд░рдЪрдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ start_server(server_opts) рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рдЙрддрдирд╛ рд╣реА рдЦреБрд╢ рд╣реВрдВ ..html::ServerOpts::default рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ рдпрджрд┐ рдореЗрд░реА рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рддрдХ рдлреИрд▓реА рд╣реБрдИ рд╣реИред

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

let foo = Some('a');
foo.unwrap();  // same as today
foo.unwrap('z');  // imagine that this replaced unwrap_or_default

int::from_str("4");  // same as today
int::from_str("4", 16);  // imagine that this replaced from_str_radix

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдм рдЬрдм рдореИрдВрдиреЗ рдЗрдиреНрд╣реЗрдВ рдЯрд╛рдЗрдк рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдБред :) рд╢рд╛рдпрдж рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП!

@dobkeratops , рд╕реА ++ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдЕрдиреБрднрд╡ рд╕реЗ, рдХреНрдпрд╛ рдЖрдк рд╣рдореЗрдВ рдЕрдЪреНрдЫреЗ рд╕реА ++ рдПрдкреАрдЖрдИ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд╖рдо рд╣реИрдВ?

https://github.com/mozilla/rust/wiki/Meeting-weekly-2013-08-13 рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рджреЗрд╡ рдЗрд╕реЗ рдПрдХ рджреВрд░-рднрд╡рд┐рд╖реНрдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рдордиреЛрдиреАрдд рдХрд░рдирд╛ред

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

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

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

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

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

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдПрдПрд╕рдЯреА рдбреЗрдЯрд╛-рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдкрд░ рдЖрдзрд╛рд░рднреВрдд рдХрд╛рд░реНрдп рдЬрдорд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд▓реЗрдиреЗ рдФрд░ рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдЧрд╛ред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдиреЗ рдореБрдЭреЗ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ред

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

рдореБрд╢реНрдХрд┐рд▓ рдмрд┐рдЯ рдЯрд╛рдЗрдк рдЪреЗрдХрд░ рд╣реИ, рд╕реВрдХреНрд╖реНрдо рдмрдЧ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рд░реЛрдХрдирд╛ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдирд╛ рдЕрдЧрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдкрд╛рд░реНрд╕рд░ рд╣реИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ ..

fn substr(a:&str, start:int, end:int=a.len())->~str

рддреНрд░реБрдЯрд┐ рдЬрд╛рдВрдЪ рдХреЗ рдмрд┐рдирд╛ рдПрдПрд╕рдЯреА рдореЗрдВ рдЙрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬ рдХреЛ рд╣реИрдХ рдХрд░реЗрдВ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдмрд╣реБрдд рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ .. рд▓реЗрдХрд┐рди рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)

рдмрд╕ рдПрдХ рдмрдЧред рд╣рдо рдЧреБрдг-рджреЛрд╖ рдкрд░ рдмрд╣рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рд░рд┐рд▓реАрдЬ рдХреЛ рд░реЛрдХ рдирд╣реАрдВ рд╕рдХрддреЗред

рдореБрдЭреЗ рд╡рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд╕рдВрдж рд╣реИ рдЬреЛ @tautologico рдиреЗ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдЬрдВрдЧ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдЧрд╛:

fn ga(bu: int, zo: Option<int>, meu: Option<int>) {
  let zo = zo.get_or_default(42);
  let meu = meu.get_or_default(99);
  ...
}

рдФрд░ рдпреЗ рд╕рднреА рд╡реИрдз рдХреЙрд▓ рд╣реЛрдВрдЧреЗ:

ga(10, 20, 30); // 20 and 30 are automagically
                // converted to Some(20) and Some(30)
ga(10, 20);         // ga(10, 20, 99) 
ga(10);             // ga(10, 42, 99)
ga(10, None, None); // ga(10, 42, 99)
ga(10, 20, None);   // ga(10, 20, 99)
ga(10, None, 30);   // ga(10, 42, 30)

рдирд┐рдпрдо рдпрд╣ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓рд╛ Option<T> рдкреИрд░рд╛рдореАрдЯрд░ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ, Option рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЗрд╕рд╕реЗ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ рддреЛ рдПрдХ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ OptParam рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

GUI рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдЙрджрд╛рд╣рд░рдг:

fn showDialog(message: ~str,
              parent: Option<Widget>,
              title: Option<~str>,
              type: Option<DialogType>,
              icon: Option<Icon>) { ... }

// Display an info box in the middle of the screen.
// Set the title to "information", translated in the current locale
// Set the icon to an "info" icon
showDialog(~"hello, world!");

// Display a warning box in the middle of the screen.
// Set the title to "warning", translated in the current locale
// Set the icon to a "warning" icon
showDialog(~"sick, sad world!", None, None, WarningDialog);

// Display a warning box in the middle of the screen.
// Set the title to "warning", translated in the current locale
// Set the icon to a custom icon
showDialog(~"sick, sad world!", None, None, WarningDialog, bugIcon);

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ:

  • parent рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди None (рдХреЛрдИ рдЕрднрд┐рднрд╛рд╡рдХ рдирд╣реАрдВ)
  • type рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди InfoDialog
  • рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди icon рдХреЗ рдореВрд▓реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ type
  • рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди title рдХреЗ рдореВрд▓реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ type рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдкрд░

рдЕрдм рдЖрдк Option рдХреЛ рдПрдХ рдирдП рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рднреА рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЕрднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рджрд╛ рдкреБрд░рд╛рдирд╛ enum ред

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

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

рд╕реНрдерд┐рддреАрдп рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЧреБрдкреНрдд рдХреЛрдб рдореЗрдВ рдкрд░рд┐рдгрдд рд╣реЛрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВ рди рдХреЗрд╡рд▓ рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИрдВ? (рдпрджрд┐ рдЗрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдЖрдИрдПрдордУ ... рдпрд╣ "рдпрд╛ рддреЛ-рдпрд╛" рдирд╣реАрдВ рд╣реИред
рд╡реЗ рджреЛрдиреЛрдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдореЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ;
рддреЛ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП, рдпрд╛ рдкрд╣рд▓реЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдПрдХ рдХрджрдо рдкрддреНрдерд░ рдХреЗ рд░реВрдк рдореЗрдВ...

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

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

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИ: рдПрдХ рдХреЗ рдкрд╛рд╕ рдЕрдХреНрд╕рд░ рдХреБрдЫ рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЕрдиреНрдп рдЬреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВред

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


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

struct Foo { x: int = 0, y:int = 0, z:int = 0 }

fn bar(f: Foo) {
    printf!(f);
}

struct Baz { x: int, y: int, z:int = 0 }

fn quux(g: Baz} {
    printf!(g);
}

fn main() {
    bar(Foo{y: 5});
    quux(Baz{y: 5}); // ~ERROR: required field, `x`
}

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

fn bar({ x: int = 0, y:int = 0, z:int = 0 }) {
    printf!(f);
}

fn quux({ x: int, y: int, z:int = 0 }) {
    printf!(g);
}

fn main() {
    bar({ y: 5 });
    quux({ y: 5 }); // ~ERROR: required field, `x`
}

@visionmedia @bstree рдХреНрдпрд╛ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрд░рдЪрдирд╛ рдирд╛рдо рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдХреНрдпрд╛ рд░рд┐рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЙрдкрдпреЛрдЧ рдШреЛрд╖рдгрд╛ рдХреЙрд▓-рд╕рд╛рдЗрдЯ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдгреЛрдВ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рдХреЛ 3 (рдирд╛рдо + рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ рдХреЛрд╖реНрдардХ рдХреЗ рд▓рд┐рдП) рд╕реЗ рдХрдо рдХрд░рдХреЗ, рд▓рдВрдмреЗ рдирд╛рдореЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ?

рдпрд╛рдиреА, ServerOpts рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд┐ bstree рдиреЗ рдореБрдЭреЗ рдмрддрд╛рдпрд╛:

fn main() {
  use O = html::StartServerOptions;
  ...
  html::start_server(O{port: 10088});
}

@pnkfelix рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ

struct Foo {
   x: int = 10,
   y: float = 1.0
}

рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рд╕рдордЭрджрд╛рд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рддрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдирд╛рдорд┐рдд рдирд╣реАрдВ), рдмрд╕ рдЕрдирд┐рд╡рд╛рд░реНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВ:

struct FooOptions { ... }
static default: FooOptions = FooOptions { ... };
fn foo(compulsory: int, required: uint, necessary: float, optionals: FooOptions) { ... }

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

struct Test {
    m: int,
    y: int
}

static DEFAULT: Test = Test{m: 10, y: 15};

Test{y: 5, ..DEFAULT}

рдореБрдЭреЗ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдВрджрд░ рднреА рд╕рдВрд░рдЪрдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд╕рдВрдж рд╣реИ

рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕рд┐рдВрдЧ рднреА рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ .. рдореБрдЭреЗ рдЕрднреА рднреА рдЯрд╛рдЗрдкрдЪреЗрдХрд░ рд╕реНрд░реЛрдд рдЖрджрд┐ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ ...

рд╢рд╛рдпрдж рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреБрдирдГред рдЕрдирд╛рдо рд╕рдВрд░рдЪрдирд╛рдПрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡реЗ рдереЗ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ 'рдЕрдЬреАрдм рдмрд╛рддрдЪреАрдд рдХреЗ рдХрд╛рд░рдг' рд╣рдЯрд╛рдирд╛ рдкрдбрд╝рд╛?
рдореИрдВ рджреЛрдиреЛрдВ рддрдВрддреНрд░ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рд╢рд╛рдпрдж рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕ _keyword_ рддрд░реНрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдХрдо рдХрд░ рджреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╕реА ++ рдореЗрдВ рдЕрдиреБрдЧрд╛рдореА рдЪреВрдХ рдЕрднреА рднреА рдЖрд╕рд╛рди рд╣реЛрдЧреА

рд╕рдиреНрджрд░реНрдн рдХреЗ рд▓рд┐рдП -
http://www.parashift.com/c++-faq-lite/named-parameter-idiom.html
рдпреЛрдЧреНрдп - рджрд┐рд▓рдЪрд╕реНрдк рд▓реЗрдХрд┐рди рд╕рд╣реА рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЗрд╕ рддрд░рд╣ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рднрд╛рд░реА рд╣реИрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪреЗрдВрдЧреЗ

рдкреБрдирдГред рдЕрдирд╛рдо рд╕рдВрд░рдЪрдирд╛рдПрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡реЗ рдереЗ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ 'рдЕрдЬреАрдм рдмрд╛рддрдЪреАрдд рдХреЗ рдХрд╛рд░рдг' рд╣рдЯрд╛рдирд╛ рдкрдбрд╝рд╛?

рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рднреА рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рдХрд╛рд░ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдереЗред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рд▓рдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЬреАрдм рдмрд╛рддрдЪреАрдд рдХреЗ рдХрд╛рд░рдг рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдирд╛рдордорд╛рддреНрд░ рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд)ред

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

рдкрд░реНрд▓ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ (рдЬрд╣рд╛рдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдХ рдПрдб-рд╣реЙрдХ рдкреИрдЯрд░реНрди рд╣реИ), рдкрд╛рдпрдерди 2 (рдЬрд╣рд╛рдВ рдЖрдк foo() takes at least 2 arguments (2 given) рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдФрд░ рдкрд╛рдпрдерди 3 (рдЬрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓-рдирд╛рдо рддрд░реНрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ _without_ рдбрд┐рдлрд╝реЙрд▓реНрдЯ), рдореИрдВ рд╡рд┐рдирдореНрд░рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ: рдЬреЛрдбрд╝реЗрдВ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреАрдиреА рдХрд╛ рдПрдХ _teeny_ рдмрд┐рдЯ, рд▓реЗрдХрд┐рди рдХреЙрд▓рд░ рдХреЛ _inline_ рд╕рдВрд░рдЪрдирд╛ рдлрд╝реАрд▓реНрдб рджреЗрдВред

рдЬреИрд╕реЗ

impl int {
    struct FromStrOptions {
        radix: uint = 10
    }
    fn from_str(s: str, opts: FromStrOptions) -> int {
        // ...
    }
}

int::from_str("4", radix: 10);

рд▓рд╛рдн:

  • рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЙрд▓рд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрд╕реА рддрд░рд╣ рд╣реИ рдЬреИрд╕реЗ do рд╕рд╛рде рдкрд╛рд╕рд┐рдВрдЧ рдмреНрд▓реЙрдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЙрд▓рд░ рдХреА рдЪрд┐рдВрддрд╛ рд╣реИред (рдХреНрдпрд╛ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдСрдкреНрдЯ рдЗрди/рдЖрдЙрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ kwargs рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдХреНрдпрд╛ рдХреЛрдИ рдкрд░рд╡рд╛рд╣ рдХрд░реЗрдЧрд╛? рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреЛрдИ рднреА do рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ
  • рдмрд╛рдЗрдирд░реА рд▓реЗрдЖрдЙрдЯ рдФрд░ рд╕реА рдХреЙрд▓ рд╕реЗрдореЗрдиреНрдЯрд┐рдХреНрд╕ рдФрд░ рдЗрддреНрдпрд╛рджрд┐ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред
  • рдХрд┐рд╕реА рджрд┐рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдпрд╛ рдПрд░рд┐рдЯреА рджреНрд╡рд╛рд░рд╛ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдЕрдзрд┐рдХ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ, рд╕рд╣реЗрдЬреЗрдВ рдХрд┐ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╡рд┐рдз рддрд░реНрдХреЛрдВ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рддреЛ, рдпрджрд┐ рдРрд╕рд╛ рдХрднреА рд╣реЛрддрд╛ рд╣реИред
  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рдПрдХ рд╣реА рд╕реЗрдЯ рдХреЛ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • рдореБрдлреНрдд рдореЗрдВ **kwargs рдЬреИрд╕рд╛ рдХреБрдЫ: рдмрд╕ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реНрдерд┐рддрд┐рддреНрдордХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВред
  • рдЖрд╡рд╢реНрдпрдХ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ: рдмрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рди рджреЗрдВ, рдФрд░ рдЖрдкрдХреЛ рдирд╛рдо рд╕реЗ _something_ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
  • рдирд╛рдо рд╕реЗ рд╕реНрдерд┐рддреАрдп рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рдирд┐рд░рд╛рд▓рд╛ рднреНрд░рдо рдирд╣реАрдВ; рддреБрдо рдмрд╕ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдиреБрдХрд╕рд╛рди:

  • рдереЛрдбрд╝рд╛ рдЬрд╛рджреБрдИред рд▓реЗрдХрд┐рди 5 рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ argspec рд╕реЗ рдЕрдиреБрдорд╛рдирд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред
  • рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ do рдореБрд╣рд╛рд╡рд░реЗ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдХрд╣рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рддрд░реНрдХ _рд▓рд┐рдЦрд┐рдд_ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛рдиреА рдпрд╣ рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рд╕реЗ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм do рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

FWIW int::from_str("4", radix: 10) , рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд, : рдХреЗ рдЯрд╛рдЗрдк рдПрд╕реНрдХреНрд░рд┐рдкреНрд╢рди рдСрдкрд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рд╣реЛрдЧрд╛ред

рд╢рд╛рдк, ASCII рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдлрд▓ред

int::from_str("4", radixтШГ 10)

рдореИрдВ рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП = рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рджреВрдВрдЧрд╛, рдмрд╕ рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рднреАрддрд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕реА рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ .. (рдЬреЛ рд╢рд╛рдпрдж рдЬрдВрдЧ рдХреЗ рд╕рд╛рде рдЬреНрдпрд╛рджрд╛ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╡реИрд╕реЗ рднреА рдЬреНрдпрд╛рджрд╛рддрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд┐рдЪрд╛рд░) .. рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреИрд▓рд╛ рдХреЗ рдкрд╛рд╕ рдпрд╣ рд╣реИ, рдПрдХ рдХреЗ рд▓рд┐рдП рд╕реА-рдЬреИрд╕реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдпрд╣ рдХреИрд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрджрд╛рд╣рд░рдг?

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

рд╣рдордиреЗ рдХрд▓ рд░рд╛рдд рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ

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

рдЯреАрдо рдиреЗ рдпрд╣ рднреА рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ 1.0 рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реАрдб @brson рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рд╣рдо 1.0 рдХреЗ рдмрд╛рдж рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдп рдкрд░ рдХреБрдЫ рднреА рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЫреЛрдбрд╝ рджреЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 1.1 рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП)ред

рддреЛ рдпрд╣ рд╕рднреА рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдордЬрдмреВрдд рд╕рдВрдХреЗрдд рд╣реИ: рдЖрдк рдЬреЛ рдЪрд╛рд╣реЗрдВ рдЙрд╕реЗ рд╣реИрдХ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ 1.0 рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рддрдХ рдЗрд╕ рдмрдЧ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдпрд╛ рдЖрд░ + рдХреБрдЫ рднреА рд╕рдмрдорд┐рдЯ рди рдХрд░реЗрдВред

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

рдореБрдЭреЗ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдиреЗ рджреЛред

рдЕрдЪреНрдЫреЗ API рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ _critical_ рд╣реИрдВ; рдЙрдирдореЗрдВ рд╕реЗ рдХрдореА рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдЕрдиреНрдпрдерд╛ рд╕рд░рд▓ рдПрдкреАрдЖрдИ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред рдПрд╕рдЯреАрдбреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдЙрджрд╛рд╣рд░рдг:

  • concat рдФрд░ connect рдмрдЬрд╛рдп рдХреЗрд╡рд▓ concat рдЬреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рднрд╛рдЬрдХ рд▓реЗрддрд╛ рд╣реИред
  • split_iter рдФрд░ splitn_iter рдХреЗрд╡рд▓ split_iter рд╕реЗ рдЕрдзрд┐рдХ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ count ред rsplit_iter рдФрд░ rsplitn_iter ред

рдФрд░ рджреВрд╕рд░реЗред

рдЗрди рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рдВрдХреНрд╢рди рдирд╛рдореЛрдВ рдХреЗ рд╣реЛрдиреЗ рд╕реЗ рдЬрд┐рдиреНрд╣реЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рднрд╛рд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдм рдПрдХ рдХреЗ рдмрдЬрд╛рдп рджреЛ (рдпрд╛ рдЕрдзрд┐рдХ) рдирд╛рдо рдЬрд╛рдирдиреЗ рд╣реЛрдВрдЧреЗред

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

рддрд╛рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рднрд╛рд░ _рд╣рдореЗрд╢рд╛__ рдмрдирд╛ рд░рд╣реЗред

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

рд░рд╕реНрдЯ рджреЗрд╡, рд░рд╕реНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╢рд╛рдирджрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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

https://github.com/mozilla/rust/issues?milestone=12&state=open

рдпрд╛ рдорд╛рдЗрд▓рд╕реНрдЯреЛрди 2 (рдкреАрдЫреЗ рдХреА рдУрд░-рд╕рдВрдЧрддрддрд╛) рдкрд░ 104 рдЦреБрд▓реЗ рдмрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ:

https://github.com/mozilla/rust/issues?milestone=13&state=open

рдпрд╛ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ 3 рдкрд░ 68 рдЦреБрд▓реЗ рдмрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ (рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рд╣рдо рдЬрд┐рди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рд╕рд╣рдордд рд╣реБрдП рдереЗ, рд╡реЗ рдЬрдВрдЧ 1.0 рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ):

https://github.com/mozilla/rust/issues?milestone=14&state=open

рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдорд╛рдВрдЧрдиреЗ рдпрд╛ рдкреНрд░рдЧрддрд┐ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реБрдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдмрдЧ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВред рдЗрд╕рдореЗрдВ рд╕реЗ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП 213 рдмрдЧ рд╣реИрдВ; рдЗрд╕ рд╕рдордп рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрд░ рдкреНрд░рдЧрддрд┐ рдХрд░рдирд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрдЧрд╛ред рдФрд░ рдЬреЛ рдХреЛрдИ рднреА рдЗрди рдмрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдЕрддреНрдпрдзрд┐рдХ рдХреГрддрдЬреНрдЮрддрд╛ рд╣реЛрдЧреАред

рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрд░ рдЯреАрдо рдХреЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬреЗрдВ рд╣реИрдВ рд▓реЗрдХрд┐рди 'рдЕрддреНрдпрдзрд┐рдХ рдирд┐рд░рд╛рд╢рд╛ рдХрд╛ рд╕рдВрдЪрд╛рд░' рдХрд░рдирд╛ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ :(
рд╡реЗрд▓реЛрд░рд┐рдХреНрд╕ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП +1ред рдирд╛рдордХрд░рдг рдХрдард┐рди рд╣реИ, рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рдирд╛ рдФрд░ рдЕрдзрд┐рдХ рдирд╛рдо рд╕реАрдЦрдирд╛ рдЕрдкрдорд╛рдирдЬрдирдХ рд╣реИ..; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЖрд░реНрдЧ/рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ; рдХреАрд╡рд░реНрдб args рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ C++ рд╕реЗ рдЖрдЧреЗ рдЬрд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓реЗрдЧрд╛ред (рдХрд╛рд╢ рдЬреАрдердм рдХреЗ рдкрд╛рд╕ рд╡реЛрдЯрд┐рдВрдЧ рд╣реЛрддреА, рдореИрдВ рдпрд╣рд╛рдБ рдереЛрдбрд╝рд╛ рдФрд░ рд░реЗрдВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рд┐рд░реНрдл +1 рджрдмрд╛ рд╕рдХрддрд╛ рдерд╛)

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

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

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

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

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЕрдиреНрдп рднрд╛рд╖рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ/рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡реЗ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ; рд╡реЗ рд╢рд╛рдпрдж рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╛ рддреЛ/рдпрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ 1.0 (рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд) рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдкрд░ рджреГрдврд╝рддрд╛ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╕реЗ рдПрд╕рдЯреАрдбреА рдкреБрд╕реНрддрдХрд╛рд▓рдп _forever_ рдореЗрдВ рдПрдкреАрдЖрдИ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИред

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

рдПрдкреАрдЖрдИ рдПрдХ рднрд╛рд╖рд╛ рдХреА рд╕рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП _good_ рдПрдкреАрдЖрдИ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ "рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА" рдХреЗ рд░реВрдк рдореЗрдВ рдЦрд╛рд░рд┐рдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@dobkeratops : _dreaming up_ рдХрд╣рдХрд░, рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рдкреВрд░реНрдг рдкреНрд░рд╕реНрддрд╛рд╡ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рдирд╣реАрдВ рд╣реИ

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

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

рдореИрдВ рджреВрд╕рд░рд╛ @thestinger - рдЕрдЧрд░ рдХрд┐рд╕реА (рдпрд╛ рд▓реЛрдЧреЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕рдореВрд╣) рдХреЗ рдкрд╛рд╕ рдПрдХ рдкреВрд░реНрдг рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ, рдпрд╛ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрддрдиреА рд╡рд╛рд▓реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рдЬреЛ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рд╣реИ, рддреЛ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рджреНрд╡рд╛рд░рд╛ред рдпрд╣ рдХреЛрдИ рд╡рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЙрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡рд┐рдЪрд╛рд░ рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджреЗрдиреЗ рдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдЕрдиреНрдп рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рд╕реБрдЭрд╛рд╡ рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреАред

@thestinger @catamorphism рдЦреБрд▓реЗ рджрд┐рдорд╛рдЧ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рджреЛрдиреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж! рдЬрдм рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рдорд┐рд▓реЗрдЧрд╛ рддреЛ рдореИрдВ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рддреИрдпрд╛рд░ рдХрд░ рд░рд╕реНрдЯ-рджреЗрд╡ рдХреЛ рднреЗрдЬреВрдВрдЧрд╛ред

рдореИрдВрдиреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡рд░рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдб рдмрдирд╛рдпрд╛ рд╣реИ: https://pad.riseup.net/p/hvbg6dQQnEe7

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

@brson рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВрдиреЗ рдореВрд▓ рдореБрджреНрджреЗ рдХреЛ рдИрдерд░рдкреИрдб рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдирдорд╕реНрддреЗред
рдкреИрдб рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рд╕реЗ, рдпрд╣ рдХрдИ рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ, рдкреНрд░рд╢реНрдиреЛрдВ, рд╕рдорд╕реНрдпрд╛рдУрдВ рдЖрджрд┐ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ...
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЪрд░реНрдЪрд╛ рдкреИрдб рдХреЛ "рд╕рд╛рд░рд╛рдВрд╢рд┐рдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рдкреИрдб рдмрдирд╛рдпрд╛ рд╣реИ, рдЗрд╕ рдкреИрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕рдЯреАрдХ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣рд╛рдВ рдкреИрдб рдпреВрдЖрд░рдПрд▓: https://pad.riseup.net/p/Ca5PBeDjUGxW

@KokaKiwi рдЕрднреА рд╕рд╛рд░реЗ рдкреИрдб рдЦрд╛рд▓реА рд╣реИрдВред рд╕рд╛рдордЧреНрд░реА рдХрд╣рд╛рдВ рдЧрдИ?

@cmr , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ:

рдЪреЗрддрд╛рд╡рдиреА: рдпрджрд┐ 30 рджрд┐рди рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрдкрд╛рджрди рдХреЗ рдмреАрдд рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдкреИрдб рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреИрдб рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ!

: рднреЛрдВрдХрдирд╛:

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЛрдЬрд╝рд┐рд▓рд╛ рдИрдерд░рдкреИрдб рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкрд░ рдмрдирд╛рдП рдЧрдП рдкреИрдб рдХреЛ рдЦреЛрдЬ рд░рд╣рд╛ рд╣реВрдВ (рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП), рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрддрд╛, рдФрд░ рдореИрдВ рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ :(

@cmr @huonw @KokaKiwi , рдореЗрд░реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рджреЛ рд▓рд┐рдВрдХ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ:

https://etherpad.mozilla.org/CQEDa85jLX
https://etherpad.mozilla.org/78FA1bozLd

@dram рдпрд╣реА рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдирдП рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред

(рд╕рдВрдкрд╛рджрд┐рддред)

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

рдирдИ рдЖрд░рдПрдлрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдареЛрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: https://github.com/rust-lang/rfcs

рдПрдХ рдЙрдкрдпреЛрдЧреА рдЪрд░реНрдЪрд╛ рдХреНрд╖реЗрддреНрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рд╡рд┐рдЪрд╛рд░ рдФрд░ рдмрд╛рддрдЪреАрдд рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реВрддреНрд░ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

overvenus picture overvenus  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jmegaffin picture jmegaffin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pedrohjordao picture pedrohjordao  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tikue picture tikue  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

modsec picture modsec  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ