Mozilla ááá±á¬áá»ááºá០áááºáá±á¬ááºáá¬ážáá±á¬ á áá áºáááá¯ááááºáá¬áá¬á áá¬áž Rust 1.53 ááᯠáá¯ááºáá±áá²á·áá±á¬áºáááºáž ááá¯á¡áá« ááœááºáááºáá±á¬ á¡áá»áá¯ážá¡ááŒááºááá°áá±á¬ á¡ááœá²á·á¡á ááºáž Rust Foundation á á¡ááŸá°ážáá¬ážááŒáá·áº áá¯ááºáá±ááá¯ááºáá«ááŒá®á áá¬áá¬á áá¬ážááẠáááºááá¯áá®áá±ážáááºážáá±ážááᯠá¡á¬áá¯á¶á áá¯ááºááŒá®ážá á¡ááá¯á¡áá»á±á¬ááºááŸááºáá¬ááºá á®áá¶ááá·áºááœá²ááŸá¯ááᯠáá¶á·ááá¯ážáá±ážáᬠá¡ááŸáá¯ááºá á¯áá±á¬ááºážáá° ááá¯á·ááá¯áẠá¡ááŒá±ážá¡áá»áááºááᯠá¡áá¯á¶ážáááŒá¯áá² ááŒáá·áºáá¬ážáá±á¬á¡áá¯ááºá¡ááŒáá¯ááºáááŸáááẠáááºážáááºážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááẠ(runtime ááᯠá¡ááŒá±áá¶á¡á áá»áá¯ážááŒááºážááŸáá·áº á á¶ááŒá á¬ááŒáá·áºááá¯ááºááᯠááŒá¯ááŒááºááááºážááááºážááŸá¯ááá¯á· áá»áŸá±á¬á·áá»áá¬ážáááº)á
Rust á á¡ááá¯á¡áá»á±á¬áẠááŸááºáá¬ááºá á®áá¶ááá·áºááœá²ááŸá¯ááẠááœáŸááºááŒáá»ááºáá»á¬ážááᯠááá¯ááºááœááºáá¬ááœáẠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠáááºááŸá¬ážáá±ážááŒá®áž áááºážááᯠááœááºááŒá®ážááá·áºáá±á¬áẠáááºááá¯áá®á§áááá¬ááᯠáááºáá±á¬ááºááŒááºážá á¡áá»ááºážááŸá®ážáá±á¬ ááœáŸááºááŒááŸá¯ááá¯ááºáᬠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážá ááŒá¬ážáá¶á¡ááœá²áá¯á¶ážááŸá¯áá»á¬áž á áááºááá¯á·áá²á·ááá¯á·áá±á¬ á¡ááá·áºáááá·áºááŸááºáá¬ááºááᯠááá¯ááºááœááºááŒááºážá០ááŒá áºáá±á«áºáá¬ááá·áº ááŒá¿áá¬áá»á¬ážááᯠáá¬ááœááºáá±ážáááºá á á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠááŒáá·áºáá±áááºá á á¯á ááºážááŸá¯ááᯠáá±áá»á¬á á±áááºááŸáá·áº ááŸá®ááá¯ááŸá¯ááᯠá á®áá¶ááá·áºááœá²áááºá ááá±á¬áá»ááºááẠCargo package manager ááᯠáá®ááœááºáá±áá«áááºá crates.io repository ááᯠhosting libraries áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážáá¬ážáá«áááºá
á¡ááá áá®ááœááºáááºážáá áºááŸá¯áá»á¬áž-
- array áá»á¬ážá¡ááœááºá IntoIterator trait ááᯠáááºááá¯ážáá»á¬ážááŒáá·áº array element áá»á¬ážááᯠáááºááá²áá² á
á¯á
ááºážááá¯ááºá
á±ááá·áº IntoIterator á
ááá¯ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáááº- [1á 2á 3] { .. }
array áá»á¬ážááᯠiterators áááºáá¶ááá·áºáááºážáááºážáá»á¬ážááá¯á· áá±ážááá¯á·ááá¯ááºáááºá á¥ááá¬- set = BTreeSet::from_iter([1, 2, 3]); some_iterator.chain([1]).zip([1, 2, 3]) { .. } á¡ááœáẠ(a, b)
ááááºá IntoIterator ááẠarray ááá¯ážáá¬ážááŸá¯á¡ááœááºáᬠáá¯ááºáá±á¬ááºáá²á·áááºá ááá¯ááá¯áááºááŸá¬á ááá¯ážáá¬ážáá»ááºáá»á¬ážá¡áá¯á¶ážááŒá¯ááẠááá¯á¡ááºáá±á¬áááºááá¯ážáá»á¬ážááᯠáá»á±á¬áºááẠ(â&[1, 2, 3]â) ááá¯á·ááá¯áẠâ[1, 2, 3].iter()âá array.into_iter() á០(&array).into_iter() ááá¯á· á¡á á±á¬ááá¯ááºáž compiler á០array.into_iter() ááá¯á· ááŒá±á¬ááºážáá²ááŒááºážááŒá±á¬áá·áº áá±á«ááºážá ááºááá¯ááºáááºááŸá¯ ááŒá¿áá¬áá»á¬ážááŒá±á¬áá·áº á¡ááá·áºá¡áá¬áž ááŒá áºá á±áá«áááºá á€ááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážáááºážááŒáá·áº ááŒá±ááŸááºážáá¬ážááẠ- compiler ááẠarray.into_iter() ááᯠ(&array).into_iter() ááá¯á· áááºáááºááŒá±á¬ááºážáá²ááœá¬ážáááºááŒá áºááŒá®áž IntoIterator á ááá¯ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážáááŸááá«á ".into_iter(") ááá¯á¡áá¯á¶ážááŒá¯ááá·áºáááºážáááºážááá¯áá±á«áºááá¯ááá·áºá¡áá«ááŸáᬠáááºáááºáá¯ááºáá±á¬ááºáááºááŒá áºáááºá )" á¡áá¬ážá¡ááᯠááŸáá·áº "[1á 2á 3]", "iter.zip([1, 2, 3])", "IntoIterator::into_iter([1, 2, 3]] áá¯á¶á á¶ááŒáá·áº áá±á«áºááá¯ááŸá¯áá»á¬ážááᯠááááá²á ) â á
- â|â áá°áá±á¬ á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááᯠáááºááŸááºááẠááŒá áºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áº âSome(1) | Some(2)" ááá¯ááẠ"Some(1 | 2)" ááá¯áá±ážááá¯ááºáá«ááŒá®- ááœá²áááẠ{ Ok(Some(1 | 2)) => { .. } Err(MyError { kind: FileNotFound | PermissionDenied, .. }) => { .. } _ => { .. } }
- áá°áá®áá¯áẠUAX 31 áááºááŸááºáá»ááºááœáẠáááºááŸááºáá¬ážáá±á¬ á¡á®ááá¯áá»á®á¡áá¹ááá¬áá»á¬áž ááá«áááºáá±á¬áºáááºáž áááºá¹áá±ááá»á¬ážááœáẠASCII ááá¯ááºáá±á¬ á¡áá¹ááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááᯠááœáá·áºááŒá¯áá¬ážáááºá ááœá²ááŒá¬ážáá±á¬áºáááºáž áááºáá°áá±á¬ á¡áá¹ááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áá á á¯á ááºážááŸá¯á០ááááá±ážáá»áẠáá¯ááºááŒááºáá«áááºá const BLà HAJ: &str = "ðŠ"; struct 人 { åå: ááŒáá¯ážáá áºáá»á±á¬ááºážá } α = 1 áá¡á±á¬ááºá letïœos = 2; ááááá±ážáá»ááº- á¡ááŸááºá¡áá¬ážá¡ááœá² 'ïœ' ááŸáá·áº 's' á¡ááŒá¬áž ááŸá¯ááºááœá±ážáááºáᯠáá°ááááº
- APIs á á¡ááá¯ááºážá¡áá
áºááᯠá¡á±á¬ááºáá«á¡ááá¯ááºáž áááºááŒáááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážá¡áá«á¡ááẠáááºááŒáááºáá±á¬á¡áá»áá¯ážá¡á
á¬ážááá¯á· ááœáŸá²ááŒá±á¬ááºážááá¯ááºáááº-
- array::from_ref
- array::from_mut
- AtomicBool-:fetch_update
- AtomicPtr::fetch_update
- BTreeSet::ááááºážááááºážáá«á
- BTreeMap::ááááºážááááºážáá«á
- BufReader::seek_relative
- cmp::min_by
- cmp::min_by_key
- cmp::max_by
- cmp::max_by_key
- DebugStruct::finish_non_exhaustive
- ááŒá¬áá»áááº-:ZERO
- ááŒá¬áá»áááº-:MAX
- ááŒá¬áá»áááº-:is_zero
- ááŒá¬áá»áááº-:saturating_add
- ááŒá¬áá»áááº-:saturating_sub
- ááŒá¬áá»áááº-:saturating_mul
- f32:: is_subnormal
- f64:: is_subnormal
- arrays á¡ááœáẠIntoIterator
- { integer}::BITS
- io::Error::ááá¶á·ááá¯ážáá«á
- NonZero*::leading_zeros
- NonZero*::trailing_zeros
- ááœá±ážáá»ááºááŸá¯-: ááá·áºááœááºážáá«á
- ááŸá¬áá°ááŒááºáž-:is_eq
- ááŸá¬áá°ááŒááºáž-:is_ne
- ááŸá¬áá°ááŒááºáž-:is_lt
- ááŸá¬áá°ááŒááºáž-:is_gt
- ááŸá¬áá°ááŒááºáž-:is_le
- ááŸá¬áá°ááŒááºáž-:is_ge
- OsStr::make_ascii_ á á¬áá¯á¶ážáá±áž
- OsStr::make_ascii_ á á¬áá¯á¶ážááŒá®áž
- OsStr::to_ascii_ á á¬áá¯á¶ážáá±áž
- OsStr::to_ascii_ á á¬áá¯á¶ážááŒá®áž
- OsStr::is_ascii
- OsStr::eq_ignore_ascii_case
- Peekable::peek_mut
- Rc::increment_strong_count
- Rc::decrement_strong_count
- á¡áá»ááº::IterMut::as_slice
- á¡áá»ááº::IterMut á¡ááœáẠAsRef<[T]>
- impl SliceIndex for (Bound ááŒáá¯ážáá»ááºá )
- Vec::extend_from_á¡ááœááºáž
- wasm64-unknown-unknown platform á¡ááœáẠááááá¡ááá·áº áá¶á·ááá¯ážááŸá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒá®ážáá«ááŒá®á ááááá¡ááá·áºááœáẠá¡ááŒá±áá¶áá¶á·ááá¯ážááŸá¯áá«áááºáá±á¬áºáááºáž á¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŒááºážáááŸááá²á ááá¬ážáááºáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáá¯ááºááŒááºááŒááºáž ááá¯á·ááá¯áẠáá¯ááºááá¯áááºáá±á¬ááºááá¯ááºáááºááŸááááŸá á á áºáá±ážááŒááºážáááŒá¯áá²ááŒá áºáááºá
- áá¯á¶ááŸááºá¡á¬ážááŒáá·áº Git repository (HEAD) á á¡ááááá¬áááœá²á¡ááœáẠ"áááºá" á¡áááºááᯠá¡áá¯á¶ážááŒá¯ááẠáá¯ááºáááºá¡áá¯ááºáááºáá±áá»á¬ááᯠááœáŸá±á·áá¬ážáááºá áá¬á áá¬á¡á á¬áž name main ááá¯á¡áá¯á¶ážááŒá¯ááá·áº repositories ááœáẠáááºáá¶áá¬ážááá·áºááŸá®ááá¯ááŸá¯áá»á¬ážááẠbranch = "main" ááᯠconfigure áá¯ááºááẠáááá¯á¡ááºáá±á¬á·áá«á
- compiler ááœááºá LLVM áá¡áááºážáá¯á¶ážáá¬ážááŸááºážá¡ááœááºááá¯á¡ááºáá»ááºáá»á¬ážááᯠLLVM 10 ááá¯á·ááá¯ážááŒáŸáá·áºáá¬ážáááºá
ááá¯á·á¡ááŒááºá Rust áá¬áá¬á áá¬ážááœáẠá¡á áááºá¡ááá¯ááºážáá»á¬áž áá±á¬áºáá±á¬ááºáááºá¡ááœáẠáááááá¬áá»á¬ážá Linux kernel ááœáẠáá±á«ááºážá ááºááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠáááºáá¯á¶ááœá±áá¶á·ááá¯ážáá±ážááŸá¯ááᯠáá»áœááºá¯ááºááá¯á· ááŸááºáá¬ážááá¯ááºáá«áááºá Let's Encrypt ááá±á¬áá»ááºááᯠáááºáá±á¬ááºáá°ááŒá áºááá·áº ISRG á¡ááœá²á·á¡á ááºáž (Internet Security Research Group) á áá¶á·ááá¯ážáá°áá®ááŸá¯á¡á±á¬ááºááœáẠProssimo ááá±á¬áá»ááºá áá°áá±á¬ááºáá±á¬ááºá¡ááœááºáž áá±á¬ááºááœááºááœá¬ážáááºááŒá áºááŒá®ážá HTTPS á áá¯á¶ááŒá¯á¶áá±ážááᯠááŒáŸáá·áºáááºáááºááŸáá·áº áááºážááá¬áá»á¬áž ááœá¶á·ááŒáá¯ážááá¯ážáááºá á±áááºá á¡ááºáá¬áááºá áááºáá¯á¶ááœá±áá»á¬ážááᯠRust-for-Linux ááá±á¬áá»ááºáá±ážáá¬ážáá° Miguel Ojeda áá¡áá¯ááºá¡ááœáẠGoogle á០áá±á¬ááºáá¶á·áá±ážáááºááŒá áºáááºá ááááºáá ISRG ááŸáá·áº Google ááẠcurl utility á¡ááœáẠá¡á á¬ážááá¯áž HTTP backend áááºáá®ážááŒááºážááŸáá·áº Apache http server á¡ááœáẠTLS module á¡áá áºáá áºáᯠááœá¶á·ááŒáá¯ážááá¯ážáááºáá±áž á¡ááœáẠáááºáá¯á¶ááœá± áá±á¬ááºáá¶á·áá±ážáá¬ážááŒá®ážááŒá áºáááºá
Microsoft ááŸáá·áº Google ááá¯á·á á¡ááá¯á¡á á¡á¬ážáááºážáá»ááºáá»á¬ážá 70% ááẠááá¯á¶ááŒá¯á¶áá±á¬ memory ááá¯ááºááœááºááŸá¯ááŒá±á¬áá·áº ááŒá áºááááºá á ááºáá á¹á ááºážáááá¯ááºáá¬áá»á¬ážáá²á·ááá¯á·áá±á¬ kernel á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠááœá¶á·ááŒáá¯ážááá¯ážáááºááẠRust áá¬áá¬á áá¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááẠááá¯á¶ááŒá¯á¶áá±á¬ááŸááºáá¬ááºááᯠááá¯ááºááœááºááŒááºážááŒá±á¬áá·áº ááŒá áºáá±á«áºáá¬áá±á¬ á¡á¬ážáááºážáá»ááºáá»á¬ážá á¡áá¹ááá¬ááºááᯠáá»áŸá±á¬á·áá»ááá¯ááºááŒá®áž áááºážááᯠááœááºááŒá±á¬ááºááŒá®áž ááŒá¬ážáá¶áááºááááááºáá»á¬ážááᯠáá»á±á¬áºááœááºááŒá®ážáá±á¬áẠáááºááá¯áá®áá±áááá¯á· áááºáá±á¬ááºááŒááºážáá²á·ááá¯á·áá±á¬ á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠáááºááŸá¬ážáá±ážáááºáᯠáá»áŸá±á¬áºááá·áºááááºá
ááá¯ážáá¬ážá
á
áºáá±ážááŒááºážá á¡áá¬ááá¹áá¯ááá¯ááºááá¯ááºááŸá¯ááá¯ááŒá±áá¬áá¶ááŒááºážááŸáá·áº á¡áá¬ááá¹áá¯áááºáááºáž (scope) ááá¯á·ááᯠá
á¯á
ááºážáá»áááºááœáẠRust ááœáẠMemory áá±ážáááºážáá±ážááᯠáá¶á·ááá¯ážáá±ážááá·áºá¡ááŒáẠáá¯ááºáá¯ááºáá±á¬ááºáá±á
ááºá¡ááœááºáž áááºááá¯áá®áááºáá±á¬ááºááŸá¯á ááŸááºáááºááŸá¯ááᯠá¡áá²ááŒááºááŒááºážááŸáááá·áº áá±ážáá«áááºá Rust ááẠááááºážááŒáá·áºááŒáá·áºáá»áŸá¶ááŸá¯áá»á¬ážááᯠá¡áá¬á¡ááœááºáá±ážáááºá á¡áá¯á¶ážáááŒá¯áá® ááŒá±á¬ááºážáá²ááá¯ááºáá±á¬áááºááá¯ážáá»á¬ážááᯠáááŒá
áºááá±á
áááºáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááºá á
á¶áá
áºáá»á
áºááá¯ááºááœáẠááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ á¡ááŸá¬ážáá»á¬ážááᯠááá¯ááºááœááºáááºá áá¯á¶áá±á¡á¬ážááŒáá·áº áááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ ááá¯ážáá¬ážáá»ááºáá»á¬ážááŸáá·áº ááááºážááŸááºáá»á¬ážá ááá±á¬ááá¬ážááᯠáá»áá·áºáá¯á¶ážáááºá áá¯áá¹ááá¡ááŸá¬ážáá»á¬ážááᯠá¡áááºážáá¯á¶ážááŒá
áºá
á±ááẠááá¯ááºáá¯á¶áá±á¬á¡ááŒáááºá
á¬ááá¯ááºááŒááºážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
source: opennet.ru