ααΆααααααααααα’αααα
αα
αΆααααααααααααααααα·αααα Rust ααααααα’αααα’αα·ααααααααΈα§ααΆαααα
ααα’α»α αα·αααΆαααΆααααααΆααααΉααααα αΆαααααΎαα‘αΎαααΈααΆααααα
αα’αααα
αα
αΆαααααα·αααΆα ααΌα
ααΆααΆαα
αΌαααααΎα’αααα
αα
αΆααααααααααα ααΆαααα·αααααααα·α
ααα ααΆαααααΎαααΆαααΎαα
ααα»α αα·αα’αααΈαααααααααα αααααα·ααΈααααααααααααα
αααααα»αααααΌαααΆααααααΎαα‘αΎαααΎααααΈα
ααα
αΆααααααΆααα ααΆααΆααΆααααααΌααααα»α αα·ααααααααααααΆαα’αΆααααααααααααααα
ααααΆαα
- ααΆααααααααααααααΆααααα»αααΆααααααΆαααα
ααΆαααααααα (αα
ααΆαααααααα) αα·αααΆαααΆααα
ααα½α (enum ααΆαα½ααααα»ααααΆααααα) αααααααΎαα»ααααααα "
#[αα·αα ααααΏα ]", αααααΆα’αα»ααααΆαα±αα αα αααα’ααΆαα ααααααααΆα αα·ααααααΎαααααΈαα αα ααΆαααααααααααααΆααααααΆα αα·αααΆαααΆαααααα αΌαα α§ααΆα ααα α’αααα’αα·αααααααααΌαα»ααααααΆααα ααΆααααααααααΆαα½αααΆααααααΆααααααΆαααΆααΆααΆαααα’αΆα ααααΎ "#[non_exhaustive]" ααΎααααΈαααααΆαααα ααΆαααααααααααα’αΆα ααΆαααΆαααααΈααααααααΆαααα’ααΆααα αα αΌαααααααααααα αααα»αααααΆαααΆαααα α’αααα’αα·ααααααααααΌαααΆααααααα±ααααααΎαααΎααααΆαααΆααααααΆαααΆαααΆααααααα―ααα αα·αααΆαα αααααΆαααα ααΉααααααΈααααΆαααααα·αα’αΆα ααααΆααααααΌαααΆαα αα»αααααααααααΈαααααααααααααα αα αα·αα’αα»ααααΆαα±ααα’αααααααααααΆαααααΈααΆαααα’ααΆαααααααααΆαα αΆαα·αααααααΆααααααααΌαααΆααααα αααααΆαα αααααααΈαα»αα αα αααα»ααααα αα crate αα αααααααααααΎααααααααΌαααααΆαα αααα»αααααα "match" αααααΌαα±ααααααααα·αααααα αααΆααααΆαααααααΆαα "_ => {...}" αααααααααααααααΎααΆααααα’αΆα ααΆαααΆαααα’ααΆαα ααΎαα·αααΌα αααααα ααα α»αααΉαααααΌαααΆααααα αΆααα αααααααααααΆαααααΈα -
αααααα αααααααΆααααα»αααΆαα α αααΆααααΌ mac!() αα αααα»αααα·ααααααααα α§ααΆα ααα α₯α‘αΌαα’αααα’αΆα ααααα βtype Foo = expand_to_type!(bar);β ααααα·αααΎ βexpand_to_typeβ ααΆαααΆααααΌααΈαα·αα·ααΈα - αα
αααα»ααααα»α "extern { ... }"
αααααα ααααααΆαααααΎααααΆαααααΆααααΌααΈαα·αα·ααΈ αα·ααα»ααααααα αα½αααΆαααααΆααααΌ "bang!()" α§ααΆα αααααααΆααααΌ_α αααΆαα! make_item { ($name:ident) => { fn $name(); } }
ααΆααααα {
make_item!(α’αΆααα αααΆ);
make_item!(ααααΆ);
}ααΆααααα "C" {
#[my_identity_macro] fn foo();
} - αα
αααα»ααααΆααααΌ
ααΆαα’αα»αααα αααααααΆααααα»αααΆααααααΎαααΆαα» "macro_rules!" αααα»ααααααΎα "macro_rules!" α’αΆα ααααΎαα ααΆαααΆαααα αααα»ααααΆααααΌααΌα αα»αααΆα (βmac!()β) αα·ααααΆααααΌαααα»αααααααααΆαα»ααααααα (β#[mac]β)α - αααα»α $m:meta mapping element
αααααα ααΆαβααΆααααβαααααΆααβαααααβααΆαβααΆααβαααα αΌαβαααβαααααΆααβαααβααααΆα (β[TOKEN_STREAM]β, β{TOKEN_STREAM}β αα·α β(TOKEN_STREAM)β) α§ααΆα αααααααΆααααΌ_α αααΆαα! accept_meta { ($m:meta) => {} }
ααα½ααα_ααααΆ!(αααααααα»αα:ααααΌα);
accept_meta!( my::path = "lit");
accept_meta!( my ::path ( abc ) );
accept_meta!( my::path [ abc ] );
accept_meta!( my::path { abc } ); - αα
αααα»ααααα Rust 2015 ααααααααα α»αααααΌαααΆαααΎααααααΆαααααα αΆαααααΆαααααααα
ααααα·αα·αααααΎαααΆαααα
αΈααα’ααα (α’ααααααα½ααα·αα·αααααααΆαααααα
αΈ) αααααααΎαα
αα
ααααα NLL (Non-Lexical Lifetimes) α ααΈαα»α ααΆααααααΆαααααΌαααΆααααα½ααααααα α»ααα
αααααααΎαααΆααααα»ααααα Rust 2018α
αααααΆααααΈααΆαααααΆααααααΌαααααΌαααΆααααααΈααα αααα Rust 2015 α’αααα’αα·ααααααα’αΆα αα ααΈαααα»αααΆαααααα αΆαα ααΈα’ααααααα½ααα·αα·αααααααΆαααααα αΈα αΆαααα αΌαααΎαααααΉαααΆαααααααααααααααααΆαααααααα’ααααΎααααααΆαααααΈαααααΆαααα·αααΌαααΈα’ααααααααΆαααα αΈααΆαααααΎα±ααααΆα’αΆα ααααααααα αΆαα½αα ααα½αααααα·αααΆαααααααααΆααααααααααΌααααααααααΆααα αΆααα αααααΆαααααααααα α»ααααααΆααααΆααααα½ααα·αα·αααααααααα’αΆα αααααΆαααααααΆαααααααΆααΆαα½αααΌααααααααΎαααΆαααΈαα»α ααΆααααααΆαααααΌαααΆαα ααααααΌααααα½αα±ααααα α»αα
- αα»ααααααα "const" ααααααααααααααΆαααααΆαααααΎααααΆααααΆαα αααα»αααα·ααααΆαα½ααααα½αα±ααααα ααααΌαααΆαααααΎαααααΆαααα»αααΆα is_power_of_two (αααααΆααα ααα½ααααααααα·αααΆαα α»αα αααααααΆ)α
- αααααααααΈαα API ααααΌαααΆαααααΆααααΈαα
αααααααααααΆααααααααΆα αα½αααΆαα todo!() macro αα·α slice::repeat, mem::take, BTreeMap::get_key_value, HashMap::get_key_value αα·ααΈααΆαααααααααΌαααΆαααααΎα±ααααΆααααααααΆαα
αααααΎαα:as_deref, αααααΎα::as_deref_mut, αααααΎα:: flatten, UdpSocket::peer_addr, {f32,f64}::to_be_bytes, {f32,f64}::to_le_bytes,{f32,f64}::to_ne32,bytes, f64}::from_be_bytes, {f32,f64}::from_le_bytes, αα·α {f32,f64}::from_ne_bytesα - αα
αααα»αααΆαααααααααααααα
αααααα·α
ααΆαα’αα»αααα ααΆααααααΆαα’αααΈααααΆαααααααΆααα’αααα ααααααα ααΎααΆαα ααΆααααααααααααΎα "αα·ααααααααααΆαααα·α" αα ααΆααααααααΆ "αα·ααααααααααΆαααα·α"--ααααα-αααα·ααΆ " ααΎααααΈαααα αΆααααααα αααααααααΆαααα ααΉααααα·ααΆααααα αααααΆααααααΆαααα αααα»ααα½ααααααααααααΆαααΆαα’αΆαααααα ααΆααααααααααααΎαααααααα ααΆαααααααααααα http.ssl ααΎααααΈααααααααα TLS ααααΉαααααΌαα
ααΆααααααααααααααΆααααα»αααΆαααααα»αααααααα "ααΆαα’αΆααααα dev " ααααα·ααααααΆαααα "αααα" α - αααααα·ααΈα ααααα rustc αααααααΌαααΆαααΆααααααααα·αααΈααΈαααααΆαααααα·ααΆααααα thumbv7neon-unknown-linux-musleabihf, aarch64-unknown-none-softfloat, mips64-unknown-linux-muslabi64 αα·α mips64el-unknown-linux-muslabi64 α ααααα·αααΈααΈααΆαααααααααΉαααΆαααΆααααααΆααΌαααααΆα ααα»αααααααααααΆαααΆαααΆααααααααααααααααααααα· αα·αααΆαααααα»αααααααΆαααΆαααααΆαααΆααααΌαααΆαα
ααααα: opennet.ru