เชฐเชธเซเชŸ 1.47 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เชฐเชฟเชฒเซ€เช

เชชเซเชฐเช•เชพเชถเชฟเชค เชธเชฟเชธเซเชŸเชฎ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเชจเซ€ 1.47 เชฐเชฟเชฒเซ€เช เช•เชฐเซ‹ เช•เชพเชŸ, เชฎเซ‹เชเชฟเชฒเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฆเซเชตเชพเชฐเชพ เชธเซเชฅเชพเชชเชฟเชค. เชญเชพเชทเชพ เชฎเซ‡เชฎเชฐเซ€ เชธเชฒเชพเชฎเชคเซ€ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชธเซเชตเชšเชพเชฒเชฟเชค เชฎเซ‡เชฎเชฐเซ€ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เช‰เชšเซเชš เช•เชพเชฐเซเชฏ เชธเชฎเชพเชจเชคเชพ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชธเชพเชงเชจ เชชเซ‚เชฐเซเช‚ เชชเชพเชกเซ‡ เช›เซ‡. เช•เชšเชฐเซ‹ เชญเซ‡เช—เซ‹ เช•เชฐเชจเชพเชฐ ะธ เชฐเชจเชŸเชพเช‡เชฎ (เชฐเชจเชŸเชพเช‡เชฎ เชธเซเชŸเชพเชจเซเชกเชฐเซเชก เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเชพ เชฎเซ‚เชณเชญเซ‚เชค เชชเซเชฐเชพเชฐเช‚เชญ เช…เชจเซ‡ เชœเชพเชณเชตเชฃเซ€เชฎเชพเช‚ เช‰เช•เชณเซ‡ เช›เซ‡).

เชฐเชธเซเชŸเชจเซเช‚ เช“เชŸเซ‹เชฎเซ‡เชŸเชฟเช• เชฎเซ‡เชฎเชฐเซ€ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชชเซ‹เชˆเชจเซเชŸเชฐเซเชธเชจเซ€ เชนเซ‡เชฐเชซเซ‡เชฐ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชญเซ‚เชฒเซ‹เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฒเซ‹-เชฒเซ‡เชตเชฒ เชฎเซ‡เชฎเชฐเซ€ เชฎเซ‡เชจเซ€เชชเซเชฏเซเชฒเซ‡เชถเชจเชฅเซ€ เช‰เชฆเซเชญเชตเชคเซ€ เชธเชฎเชธเซเชฏเชพเช“ เชธเชพเชฎเซ‡ เชฐเช•เซเชทเชฃ เช†เชชเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชฎเซ‡เชฎเชฐเซ€ เชฐเชฟเชœเชจเชจเซ‡ เชฎเซเช•เซเชค เช•เชฐเซเชฏเชพ เชชเช›เซ€ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเซเช‚, เชจเชฒ เชชเซ‹เชˆเชจเซเชŸเชฐ เชกเชฟเชฐเซ‡เชซเชฐเชจเซเชธ, เชฌเชซเชฐ เช“เชตเชฐเชฐเชจเซเชธ เชตเช—เซ‡เชฐเซ‡. เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เช“เชจเซเช‚ เชตเชฟเชคเชฐเชฃ เช•เชฐเชตเชพ, เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฐ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡. เช•เชพเชฐเซเช—เซ‹. เชเช• เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชนเซ‹เชธเซเชŸ เชฒเชพเชˆเชฌเซเชฐเซ‡เชฐเซ€เช“ เชฎเชพเชŸเซ‡ เช†เชงเชพเชฐเชญเซ‚เชค เช›เซ‡ crates.io.

เชฎเซเช–เซเชฏ เชจเชตเซ€เชจเชคเชพเช“:

  • เชชเซเชฐเช•เชพเชฐเซ‹ เชฎเชพเชŸเซ‡ เช…เชฎเชฒเซ€ เช†เชงเชพเชฐ เชเชฐเซ‡ เช•เซ‹เชˆเชชเชฃ เช•เชฆ. เช…เช—เชพเช‰, เชคเชฎเชพเชฎ เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชฎเซ‚เชฒเซเชฏเซ‹ เชฎเชพเชŸเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เช•เชพเชฐเซเชฏเซ‹เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช…เชธเชฎเชฐเซเชฅเชคเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡, เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เชฎเชพเชคเซเชฐ 32 เช•เชฆเชจเชพ เช˜เชŸเช•เซ‹ เชธเซเชงเซ€เชจเชพ เชเชฐเซ‡ เชฎเชพเชŸเซ‡ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชฒเช•เซเชทเชฃ เชธเชชเซ‹เชฐเซเชŸ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชคเซ€ เชนเชคเซ€ (เชฆเชฐเซ‡เช• เช•เชฆเชจเชพ เชฒเช•เซเชทเชฃเซ‹ เชธเซเชฅเชฟเชฐ เชฐเซ€เชคเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ). เช•เซ‹เชจเซเชธเซเชŸเชจเซเชŸ เชœเซ‡เชจเชฐเชฟเช• ("const generics") เชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชฌเชจเชพเชตเชตเชพ เชฌเชฆเชฒ เช†เชญเชพเชฐ, เช•เซ‹เชˆเชชเชฃ เชเชฐเซ‡ เช•เชฆ เชฎเชพเชŸเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เช•เชพเชฐเซเชฏเซ‹เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชฌเชจเซเชฏเซเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เช“ เชนเชœเซ เชธเซเชงเซ€ เชธเซเชฅเชฟเชฐ เชญเชพเชทเชพ เชฒเช•เซเชทเชฃเซ‹เชฎเชพเช‚ เชธเชฎเชพเชตเชฟเชทเซเชŸ เชจเชฅเซ€, เชœเซ‹ เช•เซ‡ เชคเซ‡เช“ เช•เชฎเซเชชเชพเชˆเชฒเชฐเชฎเชพเช‚ เช…เชฎเชฒเชฎเชพเช‚ เช›เซ‡ เช…เชจเซ‡ เชนเชตเซ‡ เชธเชพเชฎเซ‡เชฒ เช•เซ‹เชˆเชชเชฃ เช•เชฆเชจเชพ เชเชฐเซ‡ เชฒเช•เซเชทเชฃเซ‹ เชฎเชพเชŸเซ‡ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชชเซเชธเซเชคเช•เชพเชฒเชฏเชฎเชพเช‚.

    เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชฐเชธเซเชŸ 1.47 เชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเซเช‚ เชฌเชพเช‚เชงเช•เชพเชฎ เชเชฐเซ‡เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชจเซ‡ เช›เชพเชชเชถเซ‡, เชœเซ‹ เช•เซ‡ เช…เช—เชพเช‰ เชคเซ‡ เชญเซ‚เชฒเชฎเชพเช‚ เชชเชฐเชฟเชฃเชฎเซเชฏเซเช‚ เชนเซ‹เชค:

    fn main() {
    เชšเชพเชฒเซ‹ xs = [0; 34];

    println!("{:?}", xs);
    }

  • เช•เชŸเซ‹เช•เชŸเซ€เชจเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“เชฎเชพเช‚ เชŸเซ‚เช‚เช•เชพ เชŸเซเชฐเซ‡เชธ (เชฌเซ‡เช•เชŸเซเชฐเซ‡เชธ) เชจเซเช‚ เช†เช‰เชŸเชชเซเชŸ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เช˜เชŸเช•เซ‹ เช•เซ‡ เชœเซ‡ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“เชฎเชพเช‚ เชฐเชธ เชงเชฐเชพเชตเชคเชพ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช†เช‰เชŸเชชเซเชŸเชจเซ‡ เช…เชตเซเชฏเชตเชธเซเชฅเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชธเชฎเชธเซเชฏเชพเชจเชพ เชชเซเชฐเชพเชฅเชฎเชฟเช• เช•เชพเชฐเชฃเซ‹เชฅเซ€ เชงเซเชฏเชพเชจ เชตเชฟเชšเชฒเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡ เชŸเซเชฐเซ‡เชธเชฎเชพเช‚เชฅเซ€ เชฌเชพเช•เชพเชค เช›เซ‡. เชธเช‚เชชเซ‚เชฐเซเชฃ เชŸเซเชฐเซ‡เชธ เชชเชฐเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒ "RUST_BACKTRACE=full" เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เซ‹เชก เชฎเชพเชŸเซ‡

    fn main() {
    เช—เชญเชฐเชพเชŸ!();
    }

    เช…เช—เชพเช‰, เชŸเซเชฐเซ‡เชธ 23 เชคเชฌเช•เซเช•เชพเชฎเชพเช‚ เช†เช‰เชŸเชชเซเชŸ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชนเชตเซ‡ เชคเซ‡ เช˜เชŸเชพเชกเซ€เชจเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡
    3 เชชเช—เชฒเชพเช‚ เชœเซ‡ เชคเชฎเชจเซ‡ เชคเชฐเชค เชœ เชธเชพเชฐเชจเซ‡ เชธเชฎเชœเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡:

    เชฅเซเชฐเซ‡เชก 'เชฎเซเช–เซเชฏ' 'เชธเซเชชเชทเซเชŸ เช—เชญเชฐเชพเชŸ' เชชเชฐ เช—เชญเชฐเชพเชˆ เช—เชฏเซ‹, src/main.rs:2:5
    เชธเซเชŸเซ‡เช• เชฌเซ‡เช•เชŸเซเชฐเซ‡เชธ:
    0: std::เช—เชญเชฐเชพเชตเซเช‚::begin_panic
    /rustc/dโ€ฆd75a/library/std/src/panicking.rs:497 เชชเชฐ
    1: เชฐเชฎเชคเชจเซเช‚ เชฎเซ‡เชฆเชพเชจ::เชฎเซเช–เซเชฏ
    ./src/main.rs:2 เชชเชฐ
    2: core::ops::function::FnOnce::call_once
    /rustc/dโ€ฆd75a/library/core/src/ops/function.rs:227 เชชเชฐ

  • rustc เช•เชฎเซเชชเชพเช‡เชฒเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเชฟเชฒเซเชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เชเชฒเชเชฒเชตเซ€เชเชฎ 11 (เชฐเชธเซเชŸ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เชฎเชพเชŸเซ‡ เชฌเซ‡เช•เชเชจเซเชก เชคเชฐเซ€เช•เซ‡ LLVM เช•เซ‹เชก เชœเชจเชฐเซ‡เชถเชจ). เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชœเซ‚เชจเซ€ LLVM เชธเชพเชฅเซ‡ เชฌเชฟเชฒเซเชก เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ, เช†เชตเซƒเชคเซเชคเชฟ 8 เชธเซเชงเซ€, เชœเชพเชณเชตเซ€ เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ (เชฎเชพเช‚ rust-lang/llvm-project) เชนเชตเซ‡ LLVM 11 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡. LLVM 11 เช†เช—เชพเชฎเซ€ เชฆเชฟเชตเชธเซ‹เชฎเชพเช‚ เชฐเชฟเชฒเซ€เช เชฅเชตเชพเชจเซ€ เชงเชพเชฐเชฃเชพ เช›เซ‡.
  • เชตเชฟเชจเซเชกเซ‹เช เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ, rustc เช•เชฎเซเชชเชพเชˆเชฒเชฐ "-C เชจเชฟเชฏเช‚เชคเซเชฐเชฃ-เชซเซเชฒเซ‹-เช—เชพเชฐเซเชก" เชซเซเชฒเซ‡เช—เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเช•เซเชฐเชฟเชฏ เชฅเชฏเซ‡เชฒ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชซเซเชฒเซ‹ เช‡เชจเซเชŸเชฟเช—เซเชฐเชฟเชŸเซ€ เชšเซ‡เช•เซเชธ (เช•เช‚เชŸเซเชฐเซ‹เชฒ เชซเซเชฒเซ‹ เช—เชพเชฐเซเชก)เชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เชชเซ‚เชฐเซ‹ เชชเชพเชกเซ‡ เช›เซ‡. เช…เชจเซเชฏ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ เช† เชงเซเชตเชœเชจเซ‡ เชนเชพเชฒ เชฎเชพเชŸเซ‡ เช…เชตเช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡.
  • API เชจเซ‹ เชจเชตเซ‹ เชนเชฟเชธเซเชธเซ‹ เชธเซเชฅเชฟเชฐ เช•เซ‡เชŸเซ‡เช—เชฐเซ€เชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชธเซเชŸเซ‡เชฌเชฟเชฒเชพเชˆเชเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡
    เช“เชณเช–::new_raw,
    เชถเซเชฐเซ‡เชฃเซ€::is_empty,
    เชถเซเชฐเซ‡เชฃเซ€ เชธเชฎเชพเชตเชฟเชทเซเชŸ::is_empty,
    เชชเชฐเชฟเชฃเชพเชฎ::as_deref,
    เชชเชฐเชฟเชฃเชพเชฎ::as_deref_mut,
    Vec::เชฒเชฟเช•,
    เชจเชฟเชฐเซเชฆเซ‡เชถเช•::offset_from,
    f32::TAU เช…เชจเซ‡
    f64::TAU.

  • "const" เชฒเช•เซเชทเชฃ, เชœเซ‡ เชธเซเชฅเชฟเชฐเชพเช‚เช•เซ‹เชจเซ‡ เชฌเชฆเชฒเซ‡ เช•เซ‹เชˆเชชเชฃ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชถเช•เซเชฏเชคเชพ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเชฆเซเชงเชคเชฟเช“เชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡:
    • เชถเซ‚เชจเซเชฏ เชธเชฟเชตเชพเชฏเชจเชพ เชคเชฎเชพเชฎ เชชเซ‚เชฐเซเชฃเชพเช‚เช•เซ‹ เชฎเชพเชŸเซ‡ เชจเชตเซเช‚;
    • เชคเชฎเชพเชฎ เชชเซ‚เชฐเซเชฃเชพเช‚เช•เซ‹ เชฎเชพเชŸเซ‡ checked_add, checked_sub, checked_mul, checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub เช…เชจเซ‡ saturating_mul;
    • is_ascii_alphabetic, is_ascii_uppercase, is_ascii_lowercase, is_ascii_alphanumeric, is_ascii_digit, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii_whitespace เช…เชจเซ‡ charascii_cont_8 เชฎเชพเชŸเซ‡ เช›เซ‡.
  • เชซเซเชฐเซ€เชฌเซ€เชเชธเชกเซ€ เชฎเชพเชŸเซ‡ เชธเชพเชฎเซ‡เชฒ เชซเซเชฐเซ€เชฌเซ€เชเชธเชกเซ€ 11.4 (เชซเซเชฐเซ€เชฌเซ€เชเชธเชกเซ€ 10 เชเชฒเชเชฒเชตเซ€เชเชฎ 11เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเชคเซเช‚ เชจเชฅเซ€) เชฎเชพเช‚เชฅเซ€ เชŸเซ‚เชฒเช•เซ€เชŸ.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹