1.35. rūsa

Rust izstrādes komanda ar prieku paziņo par jaunu savas valodas versiju: ​​1.35. Rust ir programmēšanas valoda, kas ļauj rakstīt uzticamas un efektīvas programmas.

Ja Rust jau ir instalēts, izmantojot rustup, varat atjaunināt, izmantojot komandu:
$ rustup atjauninājums stabils

Galvenais atjauninājumā ir Box slēgšanas iezīmju Fn, FnOnce, FnMut ieviešana. ,Kaste ,Kaste , attiecīgi. Pievienojot iespēju nedrošām funkcijām rādītājiem slēgt, tagad makro izsaukšana dbg!() ir iespējama bez argumentiem, un standarta bibliotēka ir stabilizēta.

Sīkāka informācija:

  • Jaunajā versijā mēs pievienojām Fn, FnOnce, FnMut iezīmju ieviešanu Box ,Kaste ,Kaste , attiecīgi.
    Tagad šis kods darbosies:
    fn foo(x: lodziņš u8>) -> Vec {
    vec![1, 2, 3, 4].into_iter().map(x).collect()
    }

    Varat arī izsaukt slēgšanu tieši no Box :
    fn foo(x: lodziņš ) {
    x()
    }

  • Slēgšanu tagad var novirzīt uz norādes uz nedrošu fn.
    Tagad šis kods ir derīgs:
    /// Drošības invarianti ir `nedroši fn` rādītāja izturētie invarianti.
    unsafe fn call_unsafe_fn_ptr(f: unsafe fn()) {
    f()
    }

    fn galvenais() {
    // DROŠĪBA: nav invariantu.
    // Slēgs ir statiski liegts darīt nedrošas lietas.
    nedrošs {
    call_unsafe_fn_ptr(|| {
    dbg!();
    });
    }
    }

  • Pievienota iespēja izsaukt dbg!() makro bez argumentiem.
    Ja šim makro nododat kādu izteiksmi, makro izdrukās savu rezultātu. Piemērs:
    fn galvenais() {
    lai mut x = 0;

    ja dbg!(x == 1) {
    x += 1;
    }

    dbg!(x);
    }

    Palaižot šo kodu, jūs redzēsit:
    [src/main.rs:4] x == 1 = false
    [src/main.rs:8] x = 0

    Tagad jūs varat rakstīt šādi:
    fn galvenais() {
    let nosacījums = patiess;

    if nosacījums {
    dbg!();
    }
    }

    Palaižot šo kodu, jūs redzēsit:
    [src/main.rs:5]

  • Dažas standarta bibliotēkas daļas ir stabilizētas
    • Jaunas metodes f32 un f64:
      • f32::copysign
      • f64::copysign

      Faktiski funkcijas kopē cita skaitļa zīmi. Piemērs:
      fn galvenais() {
      assert_eq!(3.5_f32.copysign(-0.42), -3.5);
      }

    • Ir pievienotas jaunas metodes diapazona veidiem
      • Diapazons::satur
      • DiapazonsNo::satur
      • DiapazonsTo:: satur
      • Diapazons Iekļauts::satur
      • RangeToInclusive::satur

      Izmantojot šīs metodes, varat viegli pārbaudīt, vai noteikta vērtība atrodas secībā:
      fn galvenais() {
      if (0..=10).contains(&5) {
      println!("Pieci ir iekļauti no nulles līdz desmit.");
      }
      }

    • Jūs varat atrast pilnu stabilizēto API sarakstu šeit
  • Šajā atjauninājumā Clippy (šī ir programma, kas pārbauda, ​​vai kodā nav daudz kļūdu) pievienoja jaunu drop_bounds pārbaudi. Šī pārbaude darbojas, kad iestatāt ierobežojumu: T: Drop — vispārinātām funkcijām:
    fn foo (x:T){}

    T: kritiena ierobežojums visbiežāk ir kļūda, jo daži veidi tiek nekavējoties izslēgti, piemēram, u8. (Par to varat lasīt vairāk šeit)

  • Daudz uzlabojumu un labojumu programmā Cargo (valodu pakotņu pārvaldnieks), pilns izmaiņu saraksts

Avots: linux.org.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster