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 = 0Tagad 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
- Jaunas metodes f32 un f64:
- Š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
