ืฉื—ืจื•ืจ ืฉืคืช ืชื›ื ื•ืช Rust 1.43

ื™ืฆื ืœืื•ืจ ืฉื—ืจื•ืจ ืฉืคืช ืชื›ื ื•ืช ืžืขืจื›ืช ื—ืœื•ื“ื” 1.43, ืฉื”ื•ืงืžื” ืขืœ ื™ื“ื™ ืคืจื•ื™ืงื˜ ืžื•ื–ื™ืœื”. ื”ืฉืคื” ืžืชืžืงื“ืช ื‘ื‘ื˜ื™ื—ื•ืช ื–ื™ื›ืจื•ืŸ, ืžืกืคืงืช ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ืื•ื˜ื•ืžื˜ื™ ื•ืžืกืคืงืช ื›ืœื™ื ืœื”ืฉื’ืช ืžืงื‘ื™ืœื™ื•ืช ื’ื‘ื•ื”ื” ืฉืœ ืžืฉื™ืžื•ืช ืœืœื ืฉื™ืžื•ืฉ ื‘ืื•ืกืฃ ืืฉืคื” ื–ืžืŸ ืจื™ืฆื”.

ื ื™ื”ื•ืœ ื”ื–ื™ื›ืจื•ืŸ ื”ืื•ื˜ื•ืžื˜ื™ ืฉืœ Rust ืžืฉื—ืจืจ ืืช ื”ืžืคืชื— ืžืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ืžืฆื‘ื™ืขื™ื ื•ืžื’ืŸ ืžืคื ื™ ื‘ืขื™ื•ืช ื”ื ื•ื‘ืขื•ืช ืžืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ื–ื™ื›ืจื•ืŸ ื‘ืจืžื” ื ืžื•ื›ื”, ื›ื’ื•ืŸ ื’ื™ืฉื” ื—ื•ืคืฉื™ืช ืœื–ื™ื›ืจื•ืŸ, ื”ืคื ื™ื™ืช ืžืฆื‘ื™ืข null, ื—ืจื™ื’ื•ืช ืžืื’ืจ ื•ื›ื“ื•ืžื”. ืžื ื”ืœ ื—ื‘ื™ืœื•ืช ืžืคื•ืชื— ืœื”ืคืฆืช ืกืคืจื™ื•ืช, ื”ื‘ื˜ื—ืช ื”ืจื›ื‘ื” ื•ื ื™ื”ื•ืœ ืชืœื•ืช ืขืœ ื™ื“ื™ ื”ืคืจื•ื™ืงื˜. ืžื˜ืขืŸ, ื”ืžืืคืฉืจ ืœืš ืœืงื‘ืœ ืืช ื”ืกืคืจื™ื•ืช ื”ื“ืจื•ืฉื•ืช ืœืชื•ื›ื ื™ืช ื‘ืœื—ื™ืฆื” ืื—ืช. ืžืื’ืจ ื ืชืžืš ื›ื“ื™ ืœืืจื— ืกืคืจื™ื•ืช crates.io.

ื”ืขื™ืงืจื™ ื—ื™ื“ื•ืฉื™ื:

  • ืžืืงืจื• ืžืกืคืงื™ื ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืคืจื’ืžื ื˜ื™ื ืฉืœ ืืœืžื ื˜ื™ื ื›ื“ื™ ืœื”ืคื•ืš ืื•ืชื ืœืงื•ื“ ืขื‘ื•ืจ ืชื›ื•ื ื•ืช (ืชื›ื•ื ื”), ื™ื™ืฉื•ืžื™ื (impl) ืื• ื‘ืœื•ืงื™ื ื—ื™ืฆื•ื ื™ื™ื. ืœื“ื•ื’ืžื”:

    ื›ืœืœื™_ืžืืงืจื•! mac_trait {
    ($i:item) => {
    ืชื›ื•ื ื” T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    ื™ื•ื‘ื™ืœ ืœื“ื•ืจ:

    ืชื›ื•ื ื” T {
    fn foo() {}
    }

  • ื–ื™ื”ื•ื™ ืกื•ื’ ืžืฉื•ืคืจ ืฉืœ ืคืจื™ืžื™ื˜ื™ื‘ื™ื, ื”ืคื ื™ื•ืช ื•ืคืขื•ืœื•ืช ื‘ื™ื ืืจื™ื•ืช.
    ืœื“ื•ื’ืžื”, ื”ืงื•ื“ ื”ื‘ื, ืฉื‘ืขื‘ืจ ื’ืจื ืœืฉื’ื™ืื”, ื™ื•ื›ืœ ื›ืขืช ืœื‘ืฆืข ืงื•ืžืคื™ืœืฆื™ื” (Rust ืงื•ื‘ืข ื›ืขืช ื ื›ื•ืŸ ืฉ-0.0 ื•-&0.0 ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ืžืกื•ื’ f32):

    ืชืŸ n: f32 = 0.0 + &0.0;

  • ืžืฉืชื ื” ืกื‘ื™ื‘ื” ื—ื“ืฉ CARGO_BIN_EXE_{name} ื ื•ืกืฃ ืœ-Cargo, ื”ืžื•ื’ื“ืจ ื‘ืขืช ื‘ื ื™ื™ืช ืžื‘ื—ื ื™ ืื™ื ื˜ื’ืจืฆื™ื” ื•ืžืืคืฉืจ ืœืš ืœืงื‘ื•ืข ืืช ื”ื ืชื™ื‘ ื”ืžืœื ืœืงื•ื‘ืฅ ื”ื”ืคืขืœื” ื”ืžื•ื’ื“ืจ ื‘ืกืขื™ืฃ "[[bin]]" ืฉืœ ื”ื—ื‘ื™ืœื”.
  • ืื ืžื•ืชืจ ืœื”ืฆื”ืจื•ืช ืœื”ืฉืชืžืฉ ื‘ืชื›ื•ื ื•ืช ื›ื’ื•ืŸ "#[cfg()]".
  • ื”ืกืคืจื™ื™ื” ืžืกืคืงืช ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืงื‘ื•ืขื™ื ืžืฉื•ื™ื›ื™ื ื™ืฉื™ืจื•ืช ืขื‘ื•ืจ ืกื•ื’ื™ ืžืกืคืจื™ื ืฉืœืžื™ื ื•ืฉื‘ืจื™ื, ืžื‘ืœื™ ืœื™ื™ื‘ื ืžื•ื“ื•ืœ. ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืžื™ื“ u32::MAX ืื• f32::NAN ืžื‘ืœื™ ืœืฆื™ื™ืŸ ืชื—ื™ืœื” "use std::u32" ื•-"use std::f32".
  • ื ื•ืกืฃ ืžื•ื“ื•ืœ ื—ื“ืฉ ืคืจื™ืžื™ื˜ื™ื‘ื™, ืฉืžื™ื™ืฆื ืžื—ื“ืฉ ื˜ื™ืคื•ืกื™ื ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ืฉืœ Rust, ืœืžืฉืœ ื›ืฉืฆืจื™ืš ืœื›ืชื•ื‘ ืžืืงืจื• ื•ืœื•ื•ื“ื ืฉื”ื˜ื™ืคื•ืกื™ื ืื™ื ื ืžื•ืกืชืจื™ื.
  • ื—ืœืง ื—ื“ืฉ ืฉืœ ืžืžืฉืงื™ API ื”ื•ืขื‘ืจ ืœืงื˜ื’ื•ืจื™ื™ืช ื”ื™ืฆื™ื‘ื•ืช, ื›ื•ืœืœ ืžื™ื•ืฆื‘

    ืคืขื ืื—ืช::ื”ื•ืฉืœื,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 ื•
    iter::ืคืขื_ืขื.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”