Sadid 1.35

It-tim tal-iżvilupp Rust bi pjaċir iħabbar verżjoni ġdida tal-lingwa tagħhom: 1.35. Rust hija lingwa ta 'programmar li tippermettilek tikteb programmi affidabbli u effiċjenti.

Jekk diġà għandek Rust installat permezz ta 'rustup, tista' taġġorna bil-kmand:
$ rustup aġġornament stabbli

Il-ħaġa ewlenija fl-aġġornament hija l-implimentazzjoni tal-karatteristiċi tal-għeluq Fn, FnOnce, FnMut, għall-Kaxxa ,Kaxxa ,Kaxxa , rispettivament. Iż-żieda tal-kapaċità li jitfgħu għeluq għal indikaturi għal funzjonijiet mhux sikuri, is-sejħa tal-makro dbg!() issa hija possibbli mingħajr argumenti, u l-librerija standard ġiet stabbilizzata.

Għad-dettalji:

  • Fil-verżjoni l-ġdida żidna implimentazzjonijiet tal-karatteristiċi Fn, FnOnce, FnMut għall-Kaxxa ,Kaxxa ,Kaxxa , rispettivament.
    Issa dan il-kodiċi se jaħdem:
    fn foo(x: Kaxxa u8>) -> Vec {
    vec![1, 2, 3, 4].into_iter().map(x).collect()
    }

    Tista' wkoll iċempel għeluq direttament minn Box :
    fn foo(x: Kaxxa ) {
    x()
    }

  • L-għeluq issa jistgħu jiġu mitfugħa għal indikaturi għal fn mhux sigur.
    Issa dan il-kodiċi huwa validu:
    /// L-invarjanti tas-sigurtà huma dawk tal-pointer `unsafe fn` mgħoddi.
    mhux sigur fn call_unsafe_fn_ptr (f: fn mhux sigur ()) {
    f()
    }

    fn main() {
    // SIGURTÀ: M'hemm l-ebda invarjanti.
    // L-għeluq jitwaqqaf b'mod statiku milli jagħmel affarijiet mhux sikuri.
    mhux sikur {
    call_unsafe_fn_ptr(|| {
    dbg!();
    });
    }
    }

  • Żid il-ħila li ssejjaħ il-makro dbg!() mingħajr argumenti.
    Jekk tgħaddi xi espressjoni lil din il-makro, il-makro tipprintja r-riżultat tagħha. Eżempju:
    fn main() {
    ħalli mut x = 0;

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

    dbg!(x);
    }

    Meta tmexxi dan il-kodiċi se tara:
    [src/main.rs:4] x == 1 = falza
    [src/main.rs:8] x = 0

    Issa tista’ tikteb hekk:
    fn main() {
    ħalli kundizzjoni = vera;

    jekk kundizzjoni {
    dbg!();
    }
    }

    Meta tmexxi dan il-kodiċi se tara:
    [src/main.rs:5]

  • Xi partijiet tal-librerija standard ġew stabbilizzati
    • Metodi ġodda għal f32 u f64:
      • f32::copysign
      • f64::copysign

      Fil-fatt, il-funzjonijiet jikkopja s-sinjal ta 'numru ieħor. Eżempju:
      fn main() {
      assert_eq!(3.5_f32.copysign(-0.42), -3.5);
      }

    • Miżjud metodi ġodda għat-tipi ta 'Medda
      • Firxa::fih
      • RangeFrom::fih
      • RangeTo::fih
      • RangeInclusive::fih
      • RangeToInclusive::fih

      B'dawn il-metodi tista 'faċilment tiċċekkja jekk ċertu valur huwiex f'sekwenza:
      fn main() {
      jekk (0..=10).fih (&5) {
      println!("Ħames huma inklużi f'żero sa għaxra.");
      }
      }

    • Tista' ssib lista kompluta ta' APIs stabbilizzati hawn
  • F'dan l-aġġornament, Clippy (Dan huwa programm li jiċċekkja l-kodiċi tiegħek għal ħafna żbalji) żied verifika ġdida għal drop_bounds. Dan il-kontroll jibda meta tissettja restrizzjoni: T: Waqqa - għal funzjonijiet ġeneralizzati:
    fn foo (x:T){}

    Li jkollok T: Ir-restrizzjoni tal-waqgħa hija ħafna drabi żball, peress li xi tipi huma immedjatament esklużi, bħal u8 (Tista 'taqra aktar dwar dan hawn)

  • Ħafna titjib u soluzzjonijiet fil-Cargo (maniġer tal-pakkett tal-lingwa), полный список изменений

Sors: linux.org.ru

Ixtri hosting affidabbli għal siti bi protezzjoni DDoS, servers VPS VDS 🔥 Ixtri hosting ta' websajts affidabbli bi protezzjoni DDoS, servers VPS VDS | ProHoster