ื ืืืื ืืืืืจืื ืืืืืืืื ืฉื Rust ืืฉืืจืจ ืืช ืืืคืชื ืืื ืืคืืืฆืื ืฉื ืืฆืืืขืื ืืืื ืืคื ื ืืขืืืช ืื ืืืขืืช ืืื ืืคืืืฆืื ืฉื ืืืืจืื ืืจืื ื ืืืื, ืืืื ืืืฉื ืืืคืฉืืช ืืืืืจืื, ืืคื ืืืช ืืฆืืืข null, ืืจืืืืช ืืืืจ ืืืืืื. ืื ืื ืืืืืืช ืืคืืชื ืืืคืฆืช ืกืคืจืืืช, ืืืืืช ืืจืืื ืื ืืืื ืชืืืช ืขื ืืื ืืคืจืืืงื.
ืืขืืงืจื
- ื ืืกืฃ ืืฆื ืงืืืคืืืฆืื ืืฆืื ืืจ (pipelined), ืฉืื ืื ืืืช ืืืืืช ืืจืื ืชืืืื ืืชืืืื ืืจืืข ืฉืืื-ื ืชืื ื ืืชืืืช ืืืคืืื ืืืืื ืื, ืืืื ืืืืืช ืืืฉืืืช ืืงืืืคืืืฆืื ืฉืื. ืืขืช ืงืืืคืืืฆืื ืฉื ืืืืื, ืืื ืฆืืจื ืืืจืืื ืืช ืืชืืืช ืืืืืื, ืืื ืจืง ืืืืืืจ ืืช ืืืื-ื ืชืื ืื, ืืืืืืื ืจืฉืืืืช ืฉื ืกืืืื, ืชืืืช ืืืืื ืืื ืืืืฆืืื. ืืื ื ืชืื ืื ืืืื ืื ืืฉืื ืืืงืื ืืชืืืื ืืงืืืคืืืฆืื, ืื ืฉื ืืชื ืืขืช ืืืจืืื ืืืืืืช ืืงืืฉืจืืช ืืจืื ืืืชืจ ืืืงืื. ืืขืช ืื ืืืช ืืืืืืช ืืืืืืช, ืืืฆื ืืืืฆืข ืืื ื ืืฉืคืืข ืขื ืืืืฆืืขืื, ืื ืื ื-build ืืืกื ืืืืืืช ืขื ืชืืืช ืืกืืขืคืช, ื ืืชื ืืืคืืืช ืืช ืืื ืืื ืืื ืืืืื ื-10-20%;
- ืืืืื ืืืืื ืฉื ืฉืืืืฉ ืื ื ืืื ืืคืื ืงืฆืืืช
std::mem::ืื ืืชืืื ะธstd::mem::ืืคืก . ืืืืืื, std::mem::uninitialized ื ืื ืืืฆืืจื ืืืืจื ืฉื ืืขืจืืื, ืื ืืื ืืืขื ืืช ืืืืืจ ืื ื ืจืื ืฉืืื ืืืืชืื, ืื ืืคืืขื ืืขืจื ื ืืชืจ ืื ืืืืชืื. ืืคืื ืงืฆืื mem::uninitialized ืืืจ ืืกืืื ืช ืืืืฆืื ืืืืืืฅ ืืืฉืชืืฉ ืืกืื ืืื ืืื ืืืงืื ืืืชืืืื ืืืืื . ืืืื mem::zeroed, ืคืื ืงืฆืื ืื ืขืืืื ืืืจืื ืืืขืืืช ืขื ืืืคืืกืื ืฉืืื ื ืืืืืื ืืงืื ืขืจืื ืืคืก.ืืื ืืกืืืข ืืืืืื ืืชื ืืืืช ืื ืืืืืจืช, ืืืืืืจื ืืืืฉื ืืืกืืคื ืืืืงืช ืืื ืืืืืจ ืฉืืืื ืืื ืืขืืืช ืขื mem::uninitialized ืื mem::zeroed. ืืืืืื, ืืขืช ืืชื ืืงืื ืฉืืืื ืืขืช ื ืืกืืื ืืืฉืชืืฉ ื-mem::uninitialized ืื ื-mem::zeroed ืขื ืกืืื &T ื-BoxโนTโบ, ืืืืืฆืืื ืืืืืืงืื ืืฆืืืข ืฉืืื ื ืืืืืื ืืงืื ืขืจืื null;
- ืืชืืื ื "#[ืืืฆื ืืฉืืืืฉ]" ืืืจืืื ืืื ืืืคืฉืจ ืืกืื ืืืืืืช ืืจืื ืืืืืฉื ืืช ืืืชืืืื ืืืืืงื ืขืชืืืืช. ืืื ื-Rust 1.38, ื ืืชื ืืืฉืชืืฉ ืืชืืื ื ืื ืื ืขืืืจ ืคืงืืืืช ืืืงืจื;
- ื ืืกืคื ืืช ืืืืืืช ืืืฉืชืืฉ ืืชืืื ื "#[ืืงืฆื_ืืืืืื]" ืืชืช-ืืืืืืื;
- ื ืืกืคื ืคืื ืงืฆืื
std::any::type_name , ืืืืคืฉืจ ืื ืืืจืจ ืืช ืฉื ืืกืื, ืฉืืืื ืืืืืช ืฉืืืืฉื ืืืืจืืช ื ืืคืื ืืืืื. ืืืืืื, ืืืืื ืืคืขืืช ืืชืืื ืืช ืชืืื ืืืจืจ ืืืืื ืกืื ื ืงืจืื ืืคืื ืงืฆืื:fn gen_valueโนT: ืืจืืจืช ืืืื>() -โบ T {
println!("ืืชืืื ืืืคืข ืฉื {}", std::any::type_name::โนTโบ());
ืืจืืจืช ืืืื::default()
}fn main() {
let _: i32 = gen_value(); # "i32" ืืืืคืก
let _: String = gen_value(); # ืืืคืืก "alloc::string::String"
} - ืคืื ืงืฆืืืช ืืืจืืืืช ืฉื ืืกืคืจืืื ืืกืื ืืจืืืช:
- slice::{concat, connect, join} ืืืื ืืขืช ืืงืืช ืืช ืืขืจื &[T] ืื ืืกืฃ ื-&T;
- "*const T" ื-"*mut T" ืืืืฉืืื ืืขืช ืกืื::Unpin;
- "Arcโน[T]โบ" ื-"Rcโน[T]โบ" ืืืืฉืืื ืืขืช FromIteratorโนTโบ;
- iter::{StepBy, Peekable, Take} ืืืฉื ืืขืช ืืช DoubleEndedIterator.
- ascii::EscapeDefault ืืืืฉืืช Clone ื-Display.
- ืืืง ืืืฉ ืฉื ืืืฉืงื API ืืืขืืจ ืืงืืืืจืืืช ืืืฆืืืืช, ืืืื ืฉืืืืช ืฉืืืฆืื
- โน*const Tโบ::cast, โน*mut Tโบ::cast,
- Duration::as_secs_f{32|64},
- Duration::div_duration_f{32|64},
- Duration::div_f{32|64},
- Duration::from_secs_f{32|64},
- Duration::mul_f{32|64},
- ืคืขืืืืช ืืืืืื ืขื ืืฉืืจ
div_euclid ื-rem_euclid ืขืืืจ ืื ืืคืจืืืืืืืื ืฉืืืื;
- ื ืืกืคื ืชืืืื ืืฆืืื ืืคืฉืจืืช "--features" ืืกืคืจ ืคืขืืื ืืื ืืืคืฉืจ ืชืืื ืืช ืฉืื ืืช ืืื ืื ืืืืืืช ืืืืขื;
- ืืืืืจ ืืกืคืง ืฉืืืฉื
ืจืื ืชืืืื ืขืืืจ ืคืืืคืืจืืืช ืืขื aarch64-uwp-windows-msvc, i686-uwp-windows-gnu, i686-uwp-windows-msvc, x86_64-uwp-windows-gnu, x86_64-uwp-windows-msvc targets, armv7-unknown-linux -gnueabi, armv7-unknown-linux-musleabi, hexagon-unknown-linux-musl ื-riscv32i-unknown-none-elf. ืืจืื ืืฉืืืฉืืช ืืืืืช ืชืืืื ืืกืืกืืช, ืื ืืื ืืืืงืืช ืืืืืืืืืช ืืคืจืกืื ืฉื ืืื ืื ืจืฉืืืื.
ืืงืืจ: OpenNet.ru