เจœเฉฐเจ—เจพเจฒ 1.35

เจœเฉฐเจ—เจพเจฒ เจตเจฟเจ•เจพเจธ เจŸเฉ€เจฎ เจ†เจชเจฃเฉ€ เจญเจพเจธเจผเจพ เจฆเฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจ˜เฉ‹เจธเจผเจฃเจพ เจ•เจฐเจ•เฉ‡ เจ–เฉเจธเจผ เจนเฉˆ: 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 เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจธเฉ‚เจšเฉ€ เจฒเฉฑเจญ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ‡เฉฑเจฅเฉ‡
  • เจ‡เจธ เจ…เฉฑเจชเจกเฉ‡เจŸ เจตเจฟเฉฑเจš, เจ•เจฒเจฟเฉฑเจชเฉ€ (เจ‡เจน เจ‡เฉฑเจ• เจ…เจœเจฟเจนเจพ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจก เจฆเฉ€ เจ•เจˆ เจคเจฐเฉเฉฑเจŸเฉ€เจ†เจ‚ เจฒเจˆ เจœเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆ) เจจเฉ‡ เจกเฉเจฐเฉŒเจช_เจฌเจพเจ‰เจ‚เจกเจธ เจฒเจˆ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจœเจพเจ‚เจš เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจนเฉˆเฅค เจ‡เจน เจœเจพเจ‚เจš เจ‰เจฆเฉ‹เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เฉ‹เจˆ เจชเจพเจฌเฉฐเจฆเฉ€ เจธเฉˆเจŸ เจ•เจฐเจฆเฉ‡ เจนเฉ‹: T: Drop - เจ†เจฎ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฒเจˆ:
    fn foo (x:T){}

    เจŸเฉ€: เจกเฉเจฐเฉŒเจช เจชเจพเจฌเฉฐเจฆเฉ€ เจนเฉ‹เจฃเจพ เจ…เจ•เจธเจฐ เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เฉเจ เจ•เจฟเจธเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค เจฌเจพเจนเจฐ เจฐเฉฑเจ–เจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ u8เฅค (เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เฉฑเจฅเฉ‡)

  • เจ•เจพเจฐเจ—เฉ‹ (เจญเจพเจธเจผเจพ เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ) เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจธเฉเจงเจพเจฐ เจ…เจคเฉ‡ เจธเฉเจงเจพเจฐ, เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจธเฉ‚เจšเฉ€

เจธเจฐเฉ‹เจค: linux.org.ru

DDoS เจธเฉเจฐเฉฑเจ–เจฟเจ†, VPS VDS เจธเจฐเจตเจฐเจพเจ‚ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจพเจˆเจŸเจพเจ‚ เจฒเจˆ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจ–เจฐเฉ€เจฆเฉ‹ ๐Ÿ”ฅ DDoS เจธเฉเจฐเฉฑเจ–เจฟเจ†, VPS VDS เจธเจฐเจตเจฐเจพเจ‚ เจจเจพเจฒ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจ–เจฐเฉ€เจฆเฉ‹ | ProHoster