เบเบฒเบเบเบฑเบเบเบฒเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบญเบ Rust เบเบปเบเบเปเบญเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบฒเบเบเบฒเบเบซเบกเบนเบเปเบเปเบเบปเบงเบเบตเป เปเบฅเบฐเบเบปเบเบเปเบญเบเบเบฑเบเบซเบฒเบเบตเปเปเบเบตเบเบเบฒเบเบเบฒเบเบซเบกเบนเบเปเบเปเบเบงเบฒเบกเบเบปเบเบเบณเบฅเบฐเบเบฑเบเบเปเปเบฒ เปเบเบฑเปเบ: เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเปเบงเบเบเบงเบฒเบกเบเบณเบเบฒเบเบซเบผเบฑเบเบเบตเปเบเปเปเปเบชเบเบเปเบฒ, เบเบฒเบเบญเปเบฒเบเบญเบตเบเบเบปเบงเบเบตเป null, buffer overruns, เปเบฅเบฐเบญเบทเปเบเป. เบเบนเปเบเบฑเบเบเบฒเบเบเบธเบเบเปเบฒเบฅเบฑเบเบเบทเบเบเบฑเบเบเบฐเบเบฒเปเบเบทเปเบญเปเบเบเบขเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ, เบฎเบฑเบเบเบฐเบเบฑเบเบเบฒเบเบเบฐเบเบญเบเปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบเบเปเบเบเบเบฒเบ.
เบเบปเปเบโเบเป
- เปเบเบตเปเบกเบฎเบนเบเปเบเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเปเบเบเบเปเป (เบเปเป), เปเบเบดเปเบเบเบฒเบเบชเปเบฒเบเบเบธเบ crate เบเบถเปเบเบเบฑเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฑเบเบเบตเบเบตเป metadata เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบชเบฒเบกเบฒเบเปเบเปเปเบเป, เปเบเบเบเปเปเบเปเบญเบเบฅเปเบเปเบฒเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบญเบเบกเบฑเบเบชเปเบฒเปเบฅเบฑเบ. เปเบกเบทเปเบญเบฅเบงเบเบฅเบงเบกเบเบธเบ, เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฐเบเบญเบเบขเปเบฒเบเปเบเบฑเบกเบชเปเบงเบ, เบเบฝเบเปเบเปเบเปเบฒเบเบปเบ metadata, เปเบเบดเปเบเบเบฐเบเบญเบเบกเบตเบฅเบฒเบเบเบฒเบเบเบฐเปเบเบ, เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบฅเบฐเบญเบปเบเบเบฐเบเบญเบเบเบตเปเบชเบปเปเบเบญเบญเบ. Metadata เปเบกเปเบเบกเบตเบขเบนเปเปเบเบเบฑเปเบเบเบญเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเปเบเบเบญเบเบเบปเปเบ, เบเบฑเปเบเบเบฑเปเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเปเบเบทเปเบญเบกเปเบเบเบชเบฒเบกเบฒเบเบเบทเบเบฅเบงเบเบฅเบงเบกเปเบงเบเบงเปเบฒเบเบตเป. เปเบกเบทเปเบญเบชเปเบฒเบเบเบธเบเบเบฝเบง, เบฎเบนเบเปเบเบเบเบตเปเบชเบฐเปเบซเบเบตเบเปเปเบกเบตเบเบปเบเบเบฐเบเบปเบเบเปเปเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เปเบเปเบเปเบฒเบเบฒเบเบเปเปเบชเปเบฒเบเบเบงเบกเปเบญเบปเบฒเบเบฒเบเบซเบธเปเบกเบซเปเปเบเบตเปเบกเบตเบเบฒเบเบเบถเปเบเบเบฑเบเบชเบฒเบเบฒ, เปเบฅเบเบฐเปเบงเบฅเบฒเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบเบฅเบงเบกเบชเบฒเบกเบฒเบเบซเบผเบธเบเบฅเบปเบ 10-20%;
- เบฎเบฑเบเบเบฐเบเบฑเบเบเบฒเบเบเบงเบเบเบปเบเบเบฒเบเปเบเปเบเบฑเบเบเบฑเบเบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
std::mem::unitialized ะธstd::mem::เบชเบนเบ . เบเบปเบงเบขเปเบฒเบ, std::mem::uninitialized เปเบกเปเบเบชเบฐเบเบงเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบ arrays เบขเปเบฒเบเปเบงเบงเบฒ, เปเบเปเบกเบฑเบเปเบฎเบฑเบเปเบซเป compiler เปเบเบปเปเบฒเปเบเบเบดเบเปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบทเบเปเบฅเบตเปเบกเบเบปเปเบ, เปเบเปเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบเปเบฅเปเบง, เบกเบนเบเบเปเบฒเปเบกเปเบ uninitialized. mem::เบเบฑเบเบเบฑเบ uninitialized เบเบทเบเปเบฒเบเปเบฅเปเบงเบงเปเบฒเบเบทเบเบเบปเบเปเบฅเบตเบ เปเบฅเบฐเปเบเบฐเบเบณเปเบซเปเปเบเปเบเบฐเปเบเบเบเบฒเบเบเบฒเบเปเบเบ.เบเบฒเบเบเบตเปเปเบงเบ . เบชเปเบฒเบฅเบฑเบ mem::zeroed, เบเบฑเบเบเบฑเบเบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบฑเบเบซเบฒเบเบฑเบเบเบฐเปเบเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเบเบญเบกเบฎเบฑเบเบเปเบฒเบชเบนเบ.เปเบเบทเปเบญเบเปเบงเบเบฅเบฐเบเบธเบเบถเบเบเบดเบเบณเบเบตเปเบเปเปเปเบเปเบเบณเบเบปเบเปเบงเป, เบฅเบธเปเบเปเปเปเบเบฐเปเบเบตเปเบกเบเบฒเบเบเบงเบเบชเบญเบเปเบชเป lint เปเบชเปเบเบญเบกเบเบตเบงเปเบเบตเบเบตเปเบเบงเบเบเบปเบเบเบฒเบเบเบฑเบเบซเบฒเบเบฑเบ mem::uninitialized เบซเบผเบท mem::zeroed. เบเบปเบงเบขเปเบฒเบ, เบเบญเบเบเบตเปเบเปเบฒเบเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบกเบทเปเบญเบเบฐเบเบฒเบเบฒเบกเปเบเป mem::uninitialized เบซเบผเบท mem::zeroed เบเบฑเบเบเบฐเปเบเบ &T เปเบฅเบฐ BoxโนTโบ, เปเบเบดเปเบเปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบเบธเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเบฎเบฑเบเบเปเบฒ null;
- เบเบธเบเบชเบปเบกเบเบฑเบ โ#[เปเบเบปเบฒเปเบเปเปเบฅเปเบง]โ เปเบเปเบเบทเบเบเบฐเบซเบเบฒเบเบญเบญเบเปเบเบทเปเบญเปเบซเปเปเบเบฑเบเปเบเบฑเบ crate เบเบทเบเปเบฒเบเบงเปเบฒเบฅเปเบฒเบชเบฐเปเป เปเบฅเบฐเบเบณเบเบปเบเปเบงเบฅเบฒเบเบฒเบเบฅเบถเบเปเบเบญเบฐเบเบฒเบเบปเบ. เปเบเบเบฒเบเบฐเปเบเบฑเบเบเบญเบ Rust 1.38, เบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเบชเปเบฒเบฅเบฑเบ macro;
- เปเบเบตเปเบกเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบ โ#[global_allocator]โ เปเบเปเบกเบเบนเบเบเปเบญเบ;
- เปเบเบตเปเบกเบเบธเบเบชเบปเบกเบเบฑเบ
std::any::type_name , เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเบญเบเบซเบฒเบเบทเปเบเบญเบเบเบฐเปเบเบ, เบเบถเปเบเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบเบธเบเบเบฐเบชเบปเบ debugging. เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบเบเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบเบฐเปเบเบเบเบญเบเบซเบเปเบฒเบเบตเปเปเบญเบตเปเบเบงเปเบฒ:fn gen_valueโนT: เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ>() -> T {
println!("Initializing an instance of {}", std::any::type_name::โนTโบ());
เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ::default()
}fn เบซเบผเบฑเบ() {
เปเบซเป _: i32 = gen_value(); # "i32" เบเบฐเบเบทเบเบเบดเบก
เปเบซเป _: 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.
- เบชเปเบงเบเปเบซเบกเปเบเบญเบ APIs เปเบเปเบเบทเบเปเบญเบเปเบเบซเบฒเบเบฐเปเบเบเบเบตเปเบซเบกเบฑเปเบเบเบปเบ, เบฅเบงเบกเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบกเบตเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบ
- โน*const Tโบ::cast, โน*mut Tโบ::cast,
- เปเบฅเบเบฐเปเบงเบฅเบฒ::as_secs_f{32|64},
- เปเบฅเบเบฐเปเบงเบฅเบฒ::div_duration_f{32|64},
- เปเบฅเบเบฐเปเบงเบฅเบฒ::div_f{32|64},
- เปเบฅเบเบฐเปเบงเบฅเบฒ::from_secs_f{32|64},
- เปเบฅเบเบฐเปเบงเบฅเบฒ::mul_f{32|64},
- เบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเปเบเบชเปเบงเบเบเบฑเบเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญ
div_euclid เปเบฅเบฐ rem_euclid เบชเปเบฒเบฅเบฑเบ integer primitives เบเบฑเบเบซเบกเบปเบ;
- เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฅเบฐเบเบธ "-- เบเบธเบเบเบฐเบชเบปเบกเบเบฑเบ" เบเบฒเบเปเบฅเบทเบญเบเบซเบผเบฒเบเบเบฑเปเบเปเบเบทเปเบญเปเบเบตเบเปเบเปเบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบเบนเปเบเบฑเบเบเบฒเบเบเบธเบเบชเบดเบเบเปเบฒ;
- compiler เบชเบฐเบซเบเบญเบเบเบตเบชเบฒเบก
grade เบฎเบญเบเบฎเบฑเบเปเบงเบเบตเปเบเบปเปเบฒเปเบฒเบ aarch64-uwp-windows-msvc, i686-uwp-windows-gnu, i686-uwp-windows-msvc, x86_64-uwp-windows-gnu, x86_64-uwp-windows-msvc เปเบเบปเปเบฒเปเบฒเบ, armlinux7-unknown- -gnueabi, armv7-unknown-linux-musleabi, hexagon-unknown-linux-musl เปเบฅเบฐ riscv32i-unknown-none-elf. เบฅเบฐเบเบฑเบเบเบตเบชเบฒเบกเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบทเปเบเบเบฒเบ, เปเบเปเบเปเปเบกเบตเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบฅเบฐเบเบฒเบเบเบดเบกเปเบเบตเบเปเบเปเบเบฒเบเบเปเปเบชเปเบฒเบเบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru