ื ืืืื ืืืืืจืื ืืืืืืืื ืฉื Rust ืืฉืืจืจ ืืช ืืืคืชื ืืื ืืคืืืฆืื ืฉื ืืฆืืืขืื ืืืื ืืคื ื ืืขืืืช ืื ืืืขืืช ืืื ืืคืืืฆืื ืฉื ืืืืจืื ืืจืื ื ืืืื, ืืืื ืืืฉื ืืืคืฉืืช ืืืืืจืื, ืืคื ืืืช ืืฆืืืข null, ืืจืืืืช ืืืืจ ืืืืืื. ืื ืื ืืืืืืช ืืคืืชื ืืืคืฆืช ืกืคืจืืืช, ืืืืืช ืืจืืื ืื ืืืื ืชืืืช ืขื ืืื ืืคืจืืืงื.
ืืขืืงืจื
-
ืึฐืืึผืฆึธื ืชืืืืจ ืชืื ืืช ืืกืื ืืจืื ื ืืืฉ ืืืืืกืก ืขื ืืคืื ืงืฆืื "async", ืืืืืง async move { ... } ืืืืคืจืืืจ ".await", ืื ืฉืืงื ืขื ืืชืืืช ืืืคืืื ืฉืืื ื ืืืกืืื ืืช ืืจืืืช ืืคืงืืื ืืจืืฉืืช. ืืืฉืืืื ื-API ืฉืืืฆืข ืืขืืจ ืขืืืจ I/O ืืกืื ืืจืื ื, ืืื ื async/.await ืื ืคืฉืืืื ืืืื ื, ืงืจืืืื ืืืื, ืืืืคืฉืจืื ืื ืืืืฉื ืืื ืืจืืงืฆืืืช ืืกืื ืืจืื ืืืช ืืืจืืืืช ืืืืฆืขืืช ืืื ืืงืืช ืืงืจืช ืืจืืื ืืืืจืืช ืืืืืกืกืืช ืขื ืืืืืืช, ืืฆืืจืืช ืืืชื ืืช ืืืจืืืื.ืืชืืืืจ Async-await ืืืคืฉืจ ืื ืืืฆืืจ ืคืื ืงืฆืืืช ืฉืืืืืืช ืืืฉืืืช ืืช ืืืฆืืขื, ืืืืืืจ ืืช ืืฉืืืื ืืฉืจืฉืืจ ืืจืืฉื ืืืืืจ ืืื ืืืืฉ ืืช ืืืืฆืืข ืืืืงืื ืฉืื ืืคืกืืงื. ืืืืืื, ืืคืกืงื ืืื ื ืืจืฉืช ืืขืช ืขืืืื I/O, ืฉืื ื ืืชื ืืืฆืข ืขืืืื ืืืจืช ืชืื ืืืชื ื ืืคืืกืช ืื ืชืื ืื ืืืื ืฉืชืืืข. ืคืื ืงืฆืืืช ืืืืืงืื ืืืืืืจืื ืขื "async fn" ื-"async move" ืืืืืจืื ืชืืื ื
ืฉืื ื , ืืืืืืจ ืืืฆืื ืืืฉืื ืืกืื ืืจืื ื ืืืื. ืืชื ืืืื ืืืชืืื ืืฉืืจืืช ืืืฉืื ืืืื ืืืงืื ืืช ืืชืืฆืื ืืืืฆืขืืช ืืืืคืจืืืจ ".await". ืฉืื ืคืขืืื ืื ืืชืืฆืขืช ืื ืืชืืื ื ืช ืืจืืฉ ืขื ืฉื ืงืจื .await, ืื ืฉืืืคืฉืจ ืืืฆืืจ ืืื ืื ืืงืื ื ืื ืืืจืืืื ืืื ืชืงืืจื ื ืืกืคืช.async fn first_function() -> u32 { .. }
...
let future = first_function();
...
let result: u32 = future.await; -
ืึฐืืึผืฆึธื "#![feature(bind_by_move_pattern_guards)]", ืืืืคืฉืจ ืฉืืืืฉ ืืืฉืชื ืื ืขื ืกืื ืืงืืฉืืจ "ืขื ืืื ืืืื " ืืชืื ืืืช ืืืฉืชืืฉ ืืืคื ืืืช ืืืฉืชื ืื ืืื ืืงืืข "ืื" ืฉื ืืืืืื "ืืืชืืื ". ืืืืืื, ืืงืื ืกืืจืืงืฆืืืช ืืืืืช ืืืชืจืืช ืืขืช:fn main() {
let array: Box<[u8; 4]> = Box::new([1, 2, 3, 4]);ืืืชืืื ืืขืจื {
Nums
if nums.iter().sum::() == 10=> {
drop(nums);
}
_ => ืื ื ืืชื ืืืืืข!(),
}
} - ืืื ืืืงืฆืื ืืืชืจืช
ืชืืื ืืช ืืขืช ืืืืจืช ืคืจืืืจืื ืฉื ืคืื ืงืฆืืืช, ืกืืืจืืช ืืืฆืืืขื ืคืื ืงืฆืื. ื ืชืืืืช ืชืืื ืืช ืงืืืคืืืฆืื ืืืชื ืืช (cfg, cfg_attr) ืืฉืืืืืช ืืืืืื ืืืืฆืขืืช ืืื (ืืคืฉืจ, ืืืืจื, ืืืืฉื ืืืกืืจ) ืืชืืื ืืช ืขืืจ ืืฉืืืืช ืืืงืจื.fn len(
#[cfg(windows)] slice: &[u16], // ืืฉืชืืฉ ืืคืจืืืจ ื-Windows
#[cfg(not(windows))] ืคืจืืกื: &[u8], // ืืฉืชืืฉ ืืืขืจืืช ืืคืขืื ืืืจืช
) -> ืืฉืชืืฉ ื-{
slice.len()
} - ืืืืจืืช ืืืื ืืขืืืช ืฉืืืื ืืขืช ืืืืงืช ืืืฉืืื ืฉื ืืฉืชื ืื (ืืืืง ืืืฉืืื) ืืืืฆืขืืช ืืื ืืงืช ื- NLL (Non-Lexical Lifetimes),
ืึฐืชืึผืจืึธื ืืงืืืืจืื ืฉื ืืขืืืืช ืงืืื ืืืช. ืืื ื ืืืืจ ืฉืืขืจืืช ืืืืืืช ืืืืืกืกืช ืขื ืื ืื ืื ืืืฉ ืืืชืืฉืืืช ืืืืจื ืืืืื ืฉื ืืฉืชื ืื ืฉืืืืื ืืคืฉืจื ืืืืืช ืืื ืืขืืืช ืฉืื ืืืืื ื ืืงืื ืืืืืืช ืืืฉื. ืืืืืื ืฉืคืื ืฉืืืื ืขืืืจ ืืืืงืืช ืืืื ืขืฉืื ืืืฉืคืืข ืขื ืชืืืืืช ืขื ืงืื ืฉืขืื ืืขืืจ, ืืืืจืืช ืืืฆืื ืืชืืืื ืืืงืื ืฉืืืืืช. ืืืืจืืช ืืืืืคื ืืขืช ืืฉืืืืืช ืืขืช ืืคืขืื ืืืฆื Rust 2018. ืืืืืืจื ืืืื, ืคืื ืฉืืืืืช ืืืืืข ืื ืืืฆื Rust 2015, ืื ืฉืืืคืืจ ืกืืคืืช ืืืืืง ืืืฉืืื ืืืฉื; - ืืชืืื ื "const", ืืงืืืขืช ืืช ืืืคืฉืจืืช ืืืฉืชืืฉ ืืื ืืงืฉืจ ืืืงืื ืืงืืืขืื, ืืฉืืฉืช ืขืืืจ ืืคืื ืงืฆืืืช Vec::new, String::new, LinkedList::new, str::len, [T]::len , str::as_bytes,
ืฉืจืืจื ืืื, ืขืืืคืช_ืืื ืืืืฉืืฉืืช_ืืื; - ืืืง ืืืฉ ืฉื ืืืฉืงื API ืืืขืืจ ืืงืืืืจืืืช ืืืฆืืืืช, ืืืื ืฉืืืืช ืฉืืืฆืื
ืืฆืื::into_inner, Instant::checked_duration_since ื-Instant::saturating_duration_since; - ืืื ืื ืืืืืืช ืืืืขื ืืฉ ืืขืช ืืช ืืืืืืช ืืืฉืชืืฉ ืืกืืืืช ".toml" ืขืืืจ ืงืืืฆื ืชืฆืืจื. ื ืืกืคื ืชืืืื ืจืืฉืื ืืช ืืื ืืืช ืืกืคืจืืื ืืกืื ืืจืืืช ืืฉืืจืืช ื-Cargo. ืืืกืืฃ ืืช ืืืื "--workspace", ืืืงืื ืืืื ืืฉื ืื ืืืืืืงืช "--all". ืฉืื ืืืฉ ื ืืกืฃ ืืืื ื ืชืื ืื "
ืืคืจืกื ", ืืืืคืฉืจ ืื ืืคืจืกื ืชืืืช ืขื ืืื ืฆืืื ืชื git ืืืกืคืจ ืืจืกื. ื ืืกืคื ืืคืฉืจืืช ืืืืงื "-Ztimings" ืืืคืงืช ืืื HTML ืฉื ืืื ื ืืืืฆืืข ืฉื ืฉืืื ืงืืืคืืืฆืื ืฉืื ืื. - ืืืืืจ rustc, ืืืืขืืช ืืืืื ืืืืืืช ืืืชืื ืฉื ืื ืืืช ืืงืื ืฉืืื ื ืืชืืื ืืืกืืฃ. ืกืืคืงื ืจืื ืฉืืืฉืืช ืฉื ืชืืืื ืขืืืจ ืคืืืคืืจืืืช ืืขื
i686-unknown-uefi ื-sparc64-unknown-openbsd. ืืจืื ืืฉืืืฉืืช ืืืืืช ืชืืืื ืืกืืกืืช, ืื ืืื ืืืืงืืช ืืืืืืืืืช ืืคืจืกืื ืฉื ืืื ืื ืจืฉืืืื.
ืืงืืจ: OpenNet.ru