เจเฉฐเจเจพเจฒ เจตเจฟเจเจพเจธ เจเฉเจฎ เจเจชเจฃเฉ เจญเจพเจธเจผเจพ เจฆเฉ เจเฉฑเจ เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจฆเฉ เจเฉเจธเจผเจฃเจพ เจเจฐเจเฉ เจเฉเจธเจผ เจนเฉ: 1.35เฅค เจเฉฐเจเจพเจฒ เจเฉฑเจ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจญเจพเจธเจผเจพ เจนเฉ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจญเจฐเฉเจธเฉเจฎเฉฐเจฆ เจ เจคเฉ เจเฉเจธเจผเจฒ เจชเฉเจฐเฉเจเจฐเจพเจฎเจพเจ เจจเฉเฉฐ เจฒเจฟเจเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค
เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจชเจนเจฟเจฒเจพเจ เจนเฉ Rustup เจฆเฉเจเจฐเจพ เจเฉฐเจธเจเจพเจฒ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจเจฎเจพเจเจก เจจเจพเจฒ เจ
เจชเจกเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ:
$ rustup เจ
เฉฑเจชเจกเฉเจ เจธเจฅเจฟเจฐ เจนเฉ
เจ เจชเจกเฉเจ เจตเจฟเฉฑเจ เจฎเฉเฉฑเจ เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ เจฌเจพเจเจธ เจฒเจ เจฌเฉฐเจฆ เจนเฉเจฃ เจตเจพเจฒเฉ เจเฉเจฃ Fn, FnOnce, FnMut, เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจเจพ ,เจกเฉฑเจฌเจพ ,เจกเฉฑเจฌเจพ , เจเฉเจฐเจฎเจตเจพเจฐ. เจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจซเฉฐเจเจธเจผเจจเจพเจ เจฒเจ เจชเฉเจเจเฉฐเจเจฐเจพเจ เจจเฉเฉฐ เจฌเฉฐเจฆ เจเจฐเจจ เจฆเฉ เจฏเฉเจเจคเจพ เจจเฉเฉฐ เจเฉเฉเจจเจพ, dbg!() เจฎเฉเจเจฐเฉ เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจจเจพ เจนเฉเจฃ เจเจฐเจเฉเจฎเฉเจเจเจพเจ เจคเฉเจ เจฌเจฟเจจเจพเจ เจธเฉฐเจญเจต เจนเฉ, เจ เจคเฉ เจฎเจฟเจเจฐเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจจเฉเฉฐ เจธเจฅเจฟเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค
เจตเฉเจฐเจตเจฟเจเจ เจฒเจ:
- เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจฌเจพเจเจธ เจฒเจ Fn, FnOnce, FnMut เจเฉเจฃเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเฉเจคเจพ เจนเฉเฅค ,เจกเฉฑเจฌเจพ ,เจกเฉฑเจฌเจพ , เจเฉเจฐเจฎเจตเจพเจฐ.
เจนเฉเจฃ เจเจน เจเฉเจก เจเฉฐเจฎ เจเจฐเฉเจเจพ:
fn foo(x: เจฌเจพเจเจธ u8>) -> Vec {
vec![1, 2, 3, 4].into_iter().map(x).collect()
}เจคเฉเจธเฉเจ เจฌเจพเจเจธ เจคเฉเจ เจธเจฟเฉฑเจงเฉ เจฌเฉฐเจฆ เจจเฉเฉฐ เจตเฉ เจเจพเจฒ เจเจฐ เจธเจเจฆเฉ เจนเฉ :
fn foo(x: เจฌเจพเจเจธ ) {
x()
} - เจฌเฉฐเจฆ เจเจฐเจจ เจจเฉเฉฐ เจนเฉเจฃ เจ
เจธเฉเจฐเฉฑเจเจฟเจ
เจค fn เจฒเจ เจชเฉเจเจเฉฐเจเจฐเจพเจ 'เจคเฉ เจเจพเจธเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจนเฉเจฃ เจเจน เจเฉเจก เจตเฉเจง เจนเฉ:
/// เจธเฉเจฐเฉฑเจเจฟเจ เจเจจเจตเฉเจฐเฉเจเจเจ เจชเจพเจธ เจเฉเจคเฉ เจเจ `เจ เจธเฉเจฐเฉฑเจเจฟเจ เจค fn` เจชเฉเจเจเฉฐเจเจฐ เจฆเฉ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค
unsafe fn call_unsafe_fn_ptr(f: เจ เจธเฉเจฐเฉฑเจเจฟเจ เจค fn()) {
f()
}fn main() {
// เจธเฉเจฐเฉฑเจเจฟเจ: เจเฉฑเจฅเฉ เจเฉเจ เจฌเจฆเจฒเจพเจต เจจเจนเฉเจ เจนเจจเฅค
// เจฌเฉฐเจฆ เจจเฉเฉฐ เจธเจฅเจฟเจฐ เจคเฉเจฐ 'เจคเฉ เจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเฉเจเจผเจพเจ เจเจฐเจจ เจคเฉเจ เจฐเฉเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค
เจ เจธเฉเจฐเฉฑเจเจฟเจ เจค {
call_unsafe_fn_ptr(|| {
dbg!();
});
}
} - เจฌเจฟเจจเจพเจ เจเจฐเจเฉเจฎเฉเจเจ เจฆเฉ dbg!() เจฎเฉเจเจฐเฉ เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจจ เจฆเฉ เจฏเฉเจเจคเจพ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจเจเฅค
เจเฉเจเจฐ เจคเฉเจธเฉเจ เจเจธ เจฎเฉเจเจฐเฉ เจจเฉเฉฐ เจเฉเจ เจธเจฎเฉเจเจฐเจจ เจชเจพเจธ เจเจฐเจฆเฉ เจนเฉ, เจคเจพเจ เจฎเฉเจเจฐเฉ เจเจธเจฆเจพ เจจเจคเฉเจเจพ เจชเฉเจฐเจฟเฉฐเจ เจเจฐเฉเจเจพเฅค เจเจฆเจพเจนเจฐเจจ:
fn main() {
let 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::เจเจพเจชเฉ เจธเจพเจเจจ
- f64::เจเจพเจชเฉ เจธเจพเจเจจ
เจ เจธเจฒ เจตเจฟเฉฑเจ, เจซเฉฐเจเจธเจผเจจ เจเจฟเจธเฉ เจนเฉเจฐ เจจเฉฐเจฌเจฐ เจฆเฉ เจเจฟเฉฐเจจเฉเจน เจฆเฉ เจจเจเจฒ เจเจฐเจฆเฉ เจนเจจเฅค เจเจฆเจพเจนเจฐเจจ:
fn main() {
assert_eq!(3.5_f32.copysign(-0.42), -3.5);
} - เจฐเฉเจเจ เจเจฟเจธเจฎเจพเจ เจฒเจ เจจเจตเฉเจ เจคเจฐเฉเจเฉ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจเจ
- เจฐเฉเจเจ::เจธเจผเจพเจฎเจฒ เจนเฉ
- เจฐเฉเจเจ เจคเฉเจ::เจธเจผเจพเจฎเจฒ เจนเฉ
- RangeTo::เจธเจผเจพเจฎเจฒ เจนเฉ
- RangeInclusive::เจธเจผเจพเจฎเจฒ เจนเฉ
- RangeToInclusive::เจธเจผเจพเจฎเจฒ เจนเฉ
เจเจนเจจเจพเจ เจคเจฐเฉเจเจฟเจเจ เจจเจพเจฒ เจคเฉเจธเฉเจ เจเจธเจพเจจเฉ เจจเจพเจฒ เจเจพเจเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเจฟ เจเฉ เจเฉเจ เจเจพเจธ เจฎเฉเฉฑเจฒ เจเฉฑเจ เจเฉเจฐเจฎ เจตเจฟเฉฑเจ เจนเฉ:
fn main() {
เจเฉเจเจฐ (0..=10) เจธเจผเจพเจฎเจฒ เจนเฉ (&5) {
println!("เจเจผเฉเจฐเฉ เจคเฉเจ เจฆเจธ เจตเจฟเฉฑเจ เจชเฉฐเจ เจธเจผเจพเจฎเจฒ เจนเจจเฅค");
}
} - เจคเฉเจธเฉเจ เจธเจฅเจฟเจฐ API เจฆเฉ เจชเฉเจฐเฉ เจธเฉเจเฉ เจฒเฉฑเจญ เจธเจเจฆเฉ เจนเฉ เจเฉฑเจฅเฉ
- f32 เจ
เจคเฉ f64 เจฒเจ เจจเจตเฉเจ เจคเจฐเฉเจเฉ:
- เจเจธ เจ
เฉฑเจชเจกเฉเจ เจตเจฟเฉฑเจ, เจเจฒเจฟเฉฑเจชเฉ (เจเจน เจเฉฑเจ เจ
เจเจฟเจนเจพ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจนเฉ เจเฉ เจคเฉเจนเจพเจกเฉ เจเฉเจก เจฆเฉ เจเจ เจคเจฐเฉเฉฑเจเฉเจเจ เจฒเจ เจเจพเจเจ เจเจฐเจฆเจพ เจนเฉ) เจจเฉ เจกเฉเจฐเฉเจช_เจฌเจพเจเจเจกเจธ เจฒเจ เจเฉฑเจ เจจเจตเฉเจ เจเจพเจเจ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจนเฉเฅค เจเจน เจเจพเจเจ เจเจฆเฉเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเฉ เจเจฆเฉเจ เจคเฉเจธเฉเจ เจเฉเจ เจชเจพเจฌเฉฐเจฆเฉ เจธเฉเจ เจเจฐเจฆเฉ เจนเฉ: T: Drop - เจเจฎ เจซเฉฐเจเจธเจผเจจเจพเจ เจฒเจ:
fn foo (x:T){}เจเฉ: เจกเฉเจฐเฉเจช เจชเจพเจฌเฉฐเจฆเฉ เจนเฉเจฃเจพ เจ เจเจธเจฐ เจเฉฑเจ เจเจฒเจคเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจเจฟเจเจเจเจฟ เจเฉเจ เจเจฟเจธเจฎเจพเจ เจจเฉเฉฐ เจคเฉเจฐเฉฐเจค เจฌเจพเจนเจฐ เจฐเฉฑเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ u8เฅค (เจคเฉเจธเฉเจ เจเจธ เจฌเจพเจฐเฉ เจนเฉเจฐ เจชเฉเฉเจน เจธเจเจฆเฉ เจนเฉเฅค เจเฉฑเจฅเฉ)
- เจเจพเจฐเจเฉ (เจญเจพเจธเจผเจพ เจชเฉเจเฉเจ เจฎเฉเจจเฉเจเจฐ) เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจธเฉเจงเจพเจฐ เจ เจคเฉ เจธเฉเจงเจพเจฐ, เจคเจฌเจฆเฉเจฒเฉเจเจ เจฆเฉ เจชเฉเจฐเฉ เจธเฉเจเฉ
เจธเจฐเฉเจค: linux.org.ru
