Руст 1.43 ИзданиС Π·Π° програмски јазик

објавСно издавањС Π½Π° систСмски програмски јазик Π Ρ“Π° 1.43, основана ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Mozilla. ΠˆΠ°Π·ΠΈΠΊΠΎΡ‚ сС фокусира Π½Π° бСзбСдноста Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π°, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° автоматско ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° ΠΏΠΎΡΡ‚ΠΈΠ³Π½ΡƒΠ²Π°ΡšΠ΅ висок ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·Π°ΠΌ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π±Π΅Π· ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° собирач Π½Π° Ρ“ΡƒΠ±Ρ€Π΅ ΠΈ Ρ‚Ρ€Π°Π΅ΡšΠ΅.

Автоматското ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° Rust Π³ΠΎ ослободува Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ ΠΎΠ΄ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΡ˜Π° со ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΎΡ‚ ΠΈ Π·Π°ΡˆΡ‚ΠΈΡ‚ΡƒΠ²Π° ΠΎΠ΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΊΠΎΠΈ ΠΏΡ€ΠΎΠΈΠ·Π»Π΅Π³ΡƒΠ²Π°Π°Ρ‚ ΠΎΠ΄ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΡ˜Π° со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° ниско Π½ΠΈΠ²ΠΎ, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС ΠΏΠΎ-слободСн пристап Π΄ΠΎ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π°, Π΄Π΅Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Π½Π° Π½ΡƒΠ»Π° ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡, ΠΏΡ€Π΅Ρ‡Π΅ΠΊΠΎΡ€ΡƒΠ²Π°ΡšΠ° Π½Π° Π±Π°Ρ„Π΅Ρ€ΠΎΡ‚ ΠΈ слично. Π‘Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ ΠΈ ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со зависноститС ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚. Π½Π° Ρ‚ΠΎΠ²Π°Ρ€, ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°Ρ˜ΡœΠΈ Π²ΠΈ Π΄Π° Π³ΠΈ Π΄ΠΎΠ±ΠΈΠ΅Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° со Π΅Π΄Π΅Π½ ΠΊΠ»ΠΈΠΊ. Π‘ΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΎ Π·Π° домаќини Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ каси.io.

Π“Π»Π°Π²Π½ΠΈΡ‚Π΅ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • ΠœΠ°ΠΊΡ€ΠΎΠ°Ρ‚Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ моТност Π΄Π° сС користат Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΠ΄ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π·Π° Π΄Π° сС ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°Ρ‚ Π²ΠΎ ΠΊΠΎΠ΄ Π·Π° Ρ†Ρ€Ρ‚ΠΈ (карактСристика), ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ (impl) ΠΈΠ»ΠΈ Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

    ΠΌΠ°ΠΊΡ€ΠΎ_ΠΏΡ€Π°Π²ΠΈΠ»Π°! mac_trait {
    ($i:item) => {
    особина В { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    ЌС Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡ˜Π°:

    особина В {
    fn foo() {}
    }

  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΡšΠ΅ Ρ‚ΠΈΠΏ Π½Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ, Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.
    На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слСдниот ΠΊΠΎΠ΄, кој ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° Π³Ρ€Π΅ΡˆΠΊΠ°, сСга ќС ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π° (Rust сСга ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π° Π΄Π΅ΠΊΠ° 0.0 ΠΈ &0.0 ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΡ‚ f32):

    Π½Π΅ΠΊΠ° n: f32 = 0.0 + & 0.0;

  • Π’ΠΎ Cargo Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π½ΠΎΠ²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΠΆΠΈΠ²ΠΎΡ‚Π½Π°Ρ‚Π° срСдина CARGO_BIN_EXE_{name}, која сС поставува ΠΏΡ€ΠΈ Π³Ρ€Π°Π΄Π΅ΡšΠ΅ Π½Π° тСстови Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΈ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ја ΠΎΠ΄Ρ€Π΅Π΄ΠΈΡ‚Π΅ цСлосната ΠΏΠ°Ρ‚Π΅ΠΊΠ° Π΄ΠΎ ΠΈΠ·Π²Ρ€ΡˆΠ½Π°Ρ‚Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° Π²ΠΎ Π΄Π΅Π»ΠΎΡ‚ β€ž[[bin]]β€œ ΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΡ‚.
  • Ако Π½Π° ΠΈΠ·Ρ˜Π°Π²ΠΈΡ‚Π΅ ΠΈΠΌ Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π΄Π° користат Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ ΠΊΠ°ΠΊΠΎ β€ž#[cfg()]β€œ.
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° моТност Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ константи Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π° Ρ†Π΅Π»ΠΎΠ±Ρ€ΠΎΡ˜Π½ΠΈ ΠΈ Ρ„Ρ€Π°ΠΊΡ†ΠΈΠΎΠ½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²ΠΈ, Π±Π΅Π· ΡƒΠ²ΠΎΠ· Π½Π° ΠΌΠΎΠ΄ΡƒΠ». На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вСднаш Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ u32::MAX ΠΈΠ»ΠΈ f32::NAN Π±Π΅Π· ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ Π΄Π° Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ β€žuse std::u32β€œ ΠΈ β€žuse std::f32β€œ.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Π½ΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ» ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π΅Π½, кој рССкспортира Rust ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²ΠΈ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ³Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΌΠ°ΠΊΡ€ΠΎ ΠΈ Π΄Π° Π±ΠΈΠ΄Π΅Ρ‚Π΅ сигурни Π΄Π΅ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ²ΠΈΡ‚Π΅ Π½Π΅ сС скриСни.
  • Нов Π΄Π΅Π» ΠΎΠ΄ API Π΅ ΠΏΡ€Π΅Ρ„Ρ€Π»Π΅Π½ Π²ΠΎ стабилна ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ˜Π°, Π²ΠΊΠ»ΡƒΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ стабилизирани

    ΠžΡ‚ΠΊΠ°ΠΊΠΎ::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 ΠΈ
    iter::once_with.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€