рдкреНрд░рдгрд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рд░рд┐рд▓реАрдЬ , рдореЛрдЬрд┐рд▓рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рддред рднрд╛рд╖рд╛ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛рдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдЫ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рд░ рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рди рд░ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдЙрдЪреНрдЪ рдХрд╛рд░реНрдп рд╕рдорд╛рдирд╛рдиреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред .
рд░рд╕реНрдЯрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдкреЛрдЗрдиреНрдЯрд░ рд╣реЗрд░рдлреЗрд░рдмрд╛рдЯ рдореБрдХреНрдд рдЧрд░реНрджрдЫ рд░ рдирд┐рдореНрди-рд╕реНрддрд░ рдореЗрдореЛрд░реА рд╣реЗрд░рдлреЗрд░рдмрд╛рдЯ рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдмрдЪрд╛рдЙрдБрдЫ, рдЬрд╕реНрддреИ-рдореБрдХреНрдд рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪ, рдирд▓ рдкреЛрдЗрдиреНрдЯрд░ рдбрд┐рд░реЗрд░реЗрдиреНрд╕реЗрд╕, рдмрдлрд░ рдУрднрд░рд░рдиреНрд╕, рд░ рдпрд╕реНрддреИред рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрди, рд╕рдВрдпреЛрдЬрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХрдХреЛ рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХреЛ рдЫред , рддрдкрд╛рдИрдВрд▓рд╛рдИ рдПрдХ рдХреНрд▓рд┐рдХрдорд╛ рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред рдПрдХ рднрдгреНрдбрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд╣реЛрд╕реНрдЯ рдЧрд░реНрди рд╕рдорд░реНрдерд┐рдд рдЫ .
рдореБрдЦреНрдп :
- рд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВрдХреЛ рдорд┐рд▓реНрджреЛ рднрд╛рдЧрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди (рдЧрддрд┐рд╢реАрд▓ arrays, рд╕реНрд▓рд╛рдЗрд╕)ред рдкрд╣рд┐рд▓реЗ, рдареНрдпрд╛рдХреНрдХреИ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдерд┐рдпреЛ, рддрд░ рдЕрдм array рдХреЛ рдмрд╛рдБрдХреА рддрддреНрд╡рд╣рд░реВ рдХрднрд░ рдЧрд░реНрди ".." рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЗрдПрдХреЛ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:
fn foo (рд╢рдмреНрджрд╣рд░реВ: &[&str]) {
рдорд┐рд▓реНрдиреЗ рд╢рдмреНрджрд╣рд░реВ {// array рдХреЛ рд╢реБрд░реБрд╡рд╛рдд рддрддреНрд╡рд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫ рд░ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджрдЫ
рддрддреНрд╡рд╣рд░реВрд▓рд╛рдИ рдкрдЫреНрдпрд╛рдЙрдБрджреИ
["рд╣реЗрд▓реЛ", "рд╡рд┐рд╢реНрд╡", "!", ..] => println!("Hello World!"),// рдкрд╣рд┐рд▓реЛ рджреБрдИ рддрддреНрд╡ "Foo" рд░ "рдмрд╛рд░" рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫ, рд░ рдмрд╛рдБрдХреА рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫреИрди
["Foo", "рдмрд╛рд░", ..] => println!("Baz"),// рд╕рдмреИ рдХреБрд░рд╛ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддрд░ рдЕрдиреНрддрд┐рдо рддрддреНрд╡ "!" рд╣реБрдиреБрдкрд░реНрдЫред
[.., тАЬ!тАЭ] => println!(тАЬ!!!тАЭ),// рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрд▓рд╛рдЗрд╕рдорд╛ рд╣рд╛рдореАрд▓реЗ рдЕрдиреНрддрд┐рдо рддрддреНрд╡ рдмрд╛рд╣реЗрдХ рд╕рдмреИ рдХреБрд░рд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдЫреМрдВ, рдЬреБрди "z" рд╣реБрдиреБрдкрд░реНрдЫред
[start @ .., "z"] => println!("рд╕реБрд░реБ рд╣реБрдиреНрдЫ: {:?}", рд╕реБрд░реБ),// рдЕрдиреНрддрд┐рдо рдЯреБрдХреНрд░рд╛рдорд╛ рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЛ рддрддреНрд╡ рдмрд╛рд╣реЗрдХ рд╕рдмреИ рд░рд╛рдЦреНрдЫреМрдВ, рдЬреБрди "a" рд╣реБрдиреБрдкрд░реНрдЫред
["a", end @ ..] => println!("рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫ: {:?}", рдЕрдиреНрддреНрдп),rest => println!("{:?}", рдЖрд░рд╛рдо),
}
} - рдПрдЙрдЯрд╛ рдирдпрд╛рдБ рдореНрдпрд╛рдХреНрд░реЛ "рдорд┐рд▓реНрдЫ!" рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рдЗрдирдкреБрдЯрдХреЛ рд░реВрдкрдорд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд░ рдврд╛рдБрдЪрд╛ рд▓рд┐рдиреНрдЫ, рд░ рдпрджрд┐ рдврд╛рдБрдЪрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ рднрдиреЗ "рд╕рддреНрдп" рдлрд░реНрдХрд╛рдЙрдБрдЫред рдЯреЗрдореНрдкреНрд▓реЗрдЯрд▓реЗ "|" рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫ рд░ "рдпрджрд┐"ред
рдорд┐рд▓рд╛рди self.partial_cmp(рдЕрдиреНрдп) {
рдХреЗрд╣рд┐ (рдХрдо) => рд╕рддреНрдп,
_ => рдЧрд▓рдд,
}рдореЗрд▓ рдЦрд╛рдиреНрдЫ!(self.partial_cmp(рдЕрдиреНрдп), рдХреЗрд╣рд┐(рдХрдо))
let foo = 'f';
assert!(рдорд┐рд▓реНрдЫ!(foo, 'A'..='Z' | 'a'..='z'));let bar = рдХреЗрд╣реА (4);
assert!(рдорд┐рд▓реНрдЫ!(рдкрдЯреНрдЯреА, рдХреЗрд╣рд┐(x) рдпрджрд┐ x > 2)); - рдЖрддрдВрдХ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЧрд▓рдд рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреНрдЫ
рдкреНрд░рдХрд╛рд░рд╣рд░реВ рд╡рд┐рдХрд▓реНрдк рд░ рдирддрд┐рдЬрд╛, рд▓рд╛рдЗрди рдирдореНрдмрд░рд╣рд░реВ рдЕрдм рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХрд▓ рдЧрд░реНрдиреЗ рдХреЛрдбрдХреЛ рд▓рд┐рдЩреНрдХрд╕рдБрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреНрдЫрдиреН, libcore рдорд╛ рдХрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рдХреЛрдбрдорд╛ рд▓рд┐рдЩреНрдХрд╣рд░реВ рднрдиреНрджрд╛ред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкрд░рд┐рд╡рд░реНрддрдирд▓реЗ Unwrap_err, expect, expect_err, рд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░рдорд╛ рд╕рдорд╛рди рд╡рд┐рдзрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ Option::None, рд╡рд╛ рдХреНрд░реНрдпрд╛рд╕рд╣рд░реВ рдЦреЛрд▓реНрди рд░ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрди рдХрд▓рд╣рд░реВрд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдЫред - рдХрд╛рд░реНрдЧреЛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХрд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореНрдпрд╛рдХреНрд░реЛрд╣рд░реВ рднрдПрдХрд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ "рдмрд╛рд╣реНрдп" рдмреНрд▓рдХрдорд╛ "proc_macro crate" рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдпреЛ рдкрд░рд┐рд╡рд░реНрддрдирд▓реЗ рдХреЛрдбрдорд╛ "extern crate proc_macro;" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирдЧрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореНрдпрд╛рдХреНрд░реЛрд╣рд░реВрдорд╛ "рдкреНрд░рдпреЛрдЧ" рдирд┐рд░реНрджреЗрд╢рди рд▓рд╛рдЧреВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд▓реЗ "рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН proc_macro::TokenStream;" рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рддрдм рдХреЛрдб рдЕрдм рдХрд╛рдо рдЧрд░рд┐рд░рд╣рдиреЗрдЫ рдпрджрд┐ "extern crate proc_macro;" рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫред
- рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдХреНрд╖рдорддрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред iter рдорд╛::рдЦрд╛рд▓реА рдХреБрдиреИ рдкрдирд┐ T рдорд╛рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН рд░ рд╕рд┐рдЩреНрдХ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдХрд▓ рдкрд┐рди::{map_unchecked, map_unchecked_mut} "рдЖрдХрд╛рд░" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдХрд╛рд░ рдорд╛рди рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдирдмрд╛рдЯред
io::рдХрд░реНрд╕рд░ рдорд╛ рдЖрдВрд╢рд┐рдХ Eq рд░ Eqред "const" рд╡рд┐рд╢реЗрд╖рддрд╛рд▓реЗ рд╕реНрдерд┐рд░рддрд╛рдХреЛ рд╕рдЯреНрдЯрд╛ рдХреБрдиреИ рдкрдирд┐ рд╕рдиреНрджрд░реНрднрдорд╛ рдкреНрд░рдпреЛрдЧрдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ, рд▓реЗрдЖрдЙрдЯ::рдирдпрд╛рдБ рд╡рд┐рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ред - рдПрдкреАрдЖрдИрдХреЛ рдирдпрд╛рдБ рднрд╛рдЧрд▓рд╛рдИ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рдорд╛ рд╕реНрдерд┐рд░ CondVar::wait_while, CondVar::wait_timeout_while,
DebugMap::key, DebugMap::value,
рдореНрдпрд╛рдиреБрдЕрд▓реА рдбреНрд░рдк::рдЯреЗрдХ,
ptr::slice_from_raw_parts_mut рд░ ptr::slice_from_raw_partsред - рддреНрд░реБрдЯрд┐::рд╡рд░реНрдгрди рд╡рд┐рдзрд┐ рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫред
- armv7a-none-eabi рд░ riscv64gc-unknown-linux-gnu рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рджреЛрд╕реНрд░реЛ рд╕реНрддрд░ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░рд┐рдпреЛред riscv64gc-unknown-linux-gnu рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред
рдПрдкреНрдкрд▓ 32-рдмрд┐рдЯ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдорд╣рд░реВ рд╕рдорд░реНрдердирдХреЛ рддреЗрд╕реНрд░реЛ рд╕реНрддрд░рд╕рдореНрдо, рдЬрд╕рд▓реЗ рдЖрдзрд╛рд░рднреВрдд рд╕рдорд░реНрдердирд▓рд╛рдИ рдЬрдирд╛рдЙрдБрдЫ, рддрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВрдХреЛ рдкреНрд░рдХрд╛рд╢рди рдмрд┐рдирд╛ред рд╕рдорд░реНрдердирдорд╛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдПрдкреНрдкрд▓рд▓реЗ рдЕрдм 32-рдмрд┐рдЯ рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдирдЧрд░реЗрдХреЛ рдХрд╛рд░рдг рд╣реЛред
рд╕реНрд░реЛрдд: opennet.ru
