เชฐเชธเซเช เชกเซเชตเชฒเชชเชฎเซเชจเซเช เชเซเชฎ เชคเซเชฎเชจเซ เชญเชพเชทเชพเชจเชพ เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃเชจเซ เชเชพเชนเซเชฐเชพเชค เชเชฐเซเชจเซ เชเซเชถ เชเซ: 1.35. เชฐเชธเซเช เช เชเช เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชญเชพเชทเชพ เชเซ เชเซ เชคเชฎเชจเซ เชตเชฟเชถเซเชตเชธเชจเซเชฏ เช เชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชฒเชเชตเชพ เชฆเซ เชเซ.
เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชฐเชธเซเชเช
เชช เชฆเซเชตเชพเชฐเชพ เชชเชนเซเชฒเชพเชฅเซ เช เชฐเชธเซเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฒ เชเซ, เชคเซ เชคเชฎเซ เชเชฆเซเชถ เชธเชพเชฅเซ เช
เชชเชกเซเช เชเชฐเซ เชถเชเซ เชเซ:
$ rustup เช
เชชเชกเซเช เชธเซเชฅเชฟเชฐ
เช เชชเชกเซเชเชฎเชพเช เชฎเซเชเซเชฏ เชตเชธเซเชคเซ เช เชจเซเชเซเชฐเชฎเซ Box, Box, Box เชฎเชพเชเซ เชฌเชเชง เชฒเชเซเชทเชฃเซ Fn, FnOnce, FnMut เชจเซ เช เชฎเชฒ เชเซ. เช เชธเซเชฐเชเซเชทเชฟเชค เชเชพเชฐเซเชฏเซ เชฎเชพเชเซ เชชเซเชเชจเซเชเชฐ เชชเชฐ เชเซเชฒเซเชเชฐ เชเชพเชธเซเช เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชเชฎเซเชฐเชตเชพเชจเซเช, dbg!() เชฎเซเชเซเชฐเซเชจเซ เชเซเชฒ เชเชฐเชตเซเช เชนเชตเซ เชฆเชฒเซเชฒเซ เชตเชฟเชจเชพ เชถเชเซเชฏ เชเซ, เช เชจเซ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชฒเชพเชเชฌเซเชฐเซเชฐเซเชจเซ เชธเซเชฅเชฟเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชตเชฟเชเชคเซ เชฎเชพเชเซ:
- เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃเชฎเชพเช, Fn, FnOnce, FnMut เชฒเชเซเชทเชฃเซเชจเชพ เช
เชฎเชฒเซเชเชฐเชฃเซ เช
เชจเซเชเซเชฐเชฎเซ Box, Box, Box เชฎเชพเชเซ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ.
เชนเชตเซ เช เชเซเชก เชเชพเชฎ เชเชฐเชถเซ:
fn foo(x: Box u8>) -> Vec {
vec![1, 2, 3, 4].into_iter().map(x).collect()
}เชคเชฎเซ Box เชฅเซ เชธเซเชงเซเช เชเซเชฒเซเชเชฐ เชชเชฃ เชเซเชฒ เชเชฐเซ เชถเชเซ เชเซ:
fn foo(x: Box) {
x()
} - เชฌเชเชง เชนเชตเซ เช
เชธเซเชฐเชเซเชทเชฟเชค เชเชซเชเชจเชจเชพ เชจเชฟเชฐเซเชฆเซเชถเชเซ เชชเชฐ เชเชพเชธเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เชนเชตเซ เช เชเซเชก เชฎเชพเชจเซเชฏ เชเซ:
/// เชธเซเชซเซเชเซ เชเชจเชตเซเชฐเชฟเช เชจเซเชเซเชธ เช เชชเชพเชธ เชเชฐเซเชฒ `เช เชธเซเชฐเชเซเชทเชฟเชค fn` เชชเซเชเชจเซเชเชฐ เชเซ.
unsafe fn call_unsafe_fn_ptr(f: unsafe fn()) {
f()
}fn main() {
// เชธเชฒเชพเชฎเชคเซ: เชคเซเชฏเชพเช เชเซเช เช เชจเชฟเชตเชพเชฐเซเชฏ เชจเชฅเซ.
// เชฌเชเชงเชจเซ เชธเซเชฅเชฟเชฐ เชฐเซเชคเซ เช เชธเซเชฐเชเซเชทเชฟเชค เชตเชธเซเชคเซเช เชเชฐเชตเชพเชฅเซ เช เชเชเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เช เชธเซเชฐเชเซเชทเชฟเชค {
call_unsafe_fn_ptr(|| {
dbg!();
});
}
} - เชฆเชฒเซเชฒเซ เชตเชฟเชจเชพ dbg!() เชฎเซเชเซเชฐเซเชจเซ เชเซเชฒ เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชเชฎเซเชฐเซ.
เชเซ เชคเชฎเซ เช เชฎเซเชเซเชฐเซเชฎเชพเช เช เชฎเซเช เช เชญเชฟเชตเซเชฏเชเซเชคเชฟ เชชเชธเชพเชฐ เชเชฐเซ เชเซ, เชคเซ เชฎเซเชเซเชฐเซ เชคเซเชจเซเช เชชเชฐเชฟเชฃเชพเชฎ เชเชพเชชเชถเซ. เชเชฆเชพเชนเชฐเชฃ:
fn main() {
เชเชพเชฒเซ mut x = 0;เชเซ dbg!(x == 1) {
x += 1;
}dbg!(x);
}เชเซเชฏเชพเชฐเซ เชคเชฎเซ เช เชเซเชก เชเชฒเชพเชตเซ เชเซ เชคเซเชฏเชพเชฐเซ เชคเชฎเซ เชเซเชถเซ:
[src/main.rs:4] x == 1 = เชเซเชเชพ
[src/main.rs:8] x = 0เชนเชตเซ เชคเชฎเซ เชเชจเชพ เชเซเชตเซเช เชฒเชเซ เชถเชเซ เชเซ:
fn main() {
let condition = true;เชเซ เชธเซเชฅเชฟเชคเชฟ {
dbg!();
}
}เชเซเชฏเชพเชฐเซ เชคเชฎเซ เช เชเซเชก เชเชฒเชพเชตเซ เชเซ เชคเซเชฏเชพเชฐเซ เชคเชฎเซ เชเซเชถเซ:
[src/main.rs:5]
- เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชชเซเชธเซเชคเชเชพเชฒเชฏเชจเชพ เชเซเชเชฒเชพเช เชญเชพเชเซเชจเซ เชธเซเชฅเชฟเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ
- f32 เช
เชจเซ f64 เชฎเชพเชเซ เชจเชตเซ เชชเชฆเซเชงเชคเชฟเช:
- f32::copysign
- f64::copysign
เชตเชพเชธเซเชคเชตเชฎเชพเช, เชซเชเชเซเชถเชจเซเชธ เชฌเซเชเชพ เชจเชเชฌเชฐเชจเชพ เชเชฟเชนเซเชจเชจเซ เชจเชเชฒ เชเชฐเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ:
fn main() {
assert_eq!(3.5_f32.copysign(-0.42), -3.5);
} - เชถเซเชฐเซเชฃเซ เชชเซเชฐเชเชพเชฐเซ เชฎเชพเชเซ เชจเชตเซ เชชเชฆเซเชงเชคเชฟเช เชเชฎเซเชฐเซ
- เชถเซเชฐเซเชฃเซ:: เชธเชฎเชพเชตเซ เชเซ
- RangeFrom:: เชธเชฎเชพเชตเซ เชเซ
- RangeTo:: เชธเชฎเชพเชตเซ เชเซ
- RangeInclusive:: เชธเชฎเชพเชตเซ เชเซ
- RangeToInclusive:: เชธเชฎเชพเชตเซ เชเซ
เช เชชเชฆเซเชงเชคเชฟเช เชฆเซเชตเชพเชฐเชพ เชคเชฎเซ เชธเชฐเชณเชคเชพเชฅเซ เชเชเชพเชธเซ เชถเชเซ เชเซ เชเซ เชเซเช เชเซเชเซเชเชธ เชฎเซเชฒเซเชฏ เช เชจเซเชเซเชฐเชฎเชฎเชพเช เชเซ เชเซ เชจเชนเซเช:
fn main() {
เชเซ (0..=10). เชธเชฎเชพเชตเซ เชเซ(&5) {
println!("เชถเซเชจเซเชฏเชฅเซ เชฆเชธเชฎเชพเช เชชเชพเชเชเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ.");
}
} - เชคเชฎเซ เชธเซเชฅเชฟเชฐ API เชจเซ เชธเชเชชเซเชฐเซเชฃ เชธเซเชเชฟ เชถเซเชงเซ เชถเชเซ เชเซ เช เชนเซเช
- f32 เช
เชจเซ f64 เชฎเชพเชเซ เชจเชตเซ เชชเชฆเซเชงเชคเชฟเช:
- เช เช
เชชเชกเซเชเชฎเชพเช, เชเซเชฒเชฟเชชเซเชชเซ (เช เชเช เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเซ เชเซ เชคเชฎเชพเชฐเชพ เชเซเชกเชจเซ เชเชฃเซ เชญเซเชฒเซ เชฎเชพเชเซ เชคเชชเชพเชธเซ เชเซ) เช เชกเซเชฐเซเชช_เชฌเชพเชเชจเซเชกเซเชธ เชฎเชพเชเซ เชเช เชจเชตเซ เชเซเช เชเชฎเซเชฐเซเชฏเซ เชเซ. เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชเซเช เช
เชตเชฐเซเชง เชธเซเช เชเชฐเซ เชเซ เชคเซเชฏเชพเชฐเซ เช เชเซเช เชเชพเชฎ เชเชฐเซ เชเซ: T: เชกเซเชฐเซเชช - เชธเชพเชฎเชพเชจเซเชฏเชเซเชค เชเชพเชฐเซเชฏเซ เชฎเชพเชเซ:
fn foo(x: T) {}T: เชกเซเชฐเซเชช เชชเซเชฐเชคเชฟเชฌเชเชง เชฎเซเชเชพเชญเชพเชเซ เชญเซเชฒ เชเซ, เชเชพเชฐเชฃ เชเซ เชเซเชเชฒเชพเช เชชเซเชฐเชเชพเชฐเซเชจเซ เชคเชฐเชค เช เชฌเชพเชเชพเชค เชฐเชพเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซเชฎ เชเซ u8. (เชคเชฎเซ เช เชตเชฟเชถเซ เชตเชงเซ เชตเชพเชเชเซ เชถเชเซ เชเซ. เช เชนเซเช)
- เชเชพเชฐเซเชเซ (เชญเชพเชทเชพ เชชเซเชเซเช เชฎเซเชจเซเชเชฐ) เชฎเชพเช เชเชฃเชพ เชฌเชงเชพ เชธเซเชงเชพเชฐเชพ เช เชจเซ เชธเซเชงเชพเชฐเชพเช, เชซเซเชฐเชซเชพเชฐเซเชจเซ เชธเชเชชเซเชฐเซเชฃ เชธเซเชเชฟ
เชธเซเชฐเซเชธ: linux.org.ru
