small typos

This commit is contained in:
Nekrolm
2024-09-15 18:18:16 +01:00
parent 3417a4832e
commit 6471992b4a
+10 -3
View File
@@ -2,7 +2,7 @@
У этой истории довольно нестандартное начало для этой книги. Заметить странности и неожиданные ловушки во встроенном операторе C++ внезапно поспособствовала новая возможность в языке Rust. Последние несколько лет я много работаю с кодовыми базами на C++ и Rust, и на стыке между ними. А поскольку вполне естественно переносить ожидания из одного языка на другой, тем более когда они похожи, я решил проверить, а как же работает похожий код на С++.
Rust в версии 1.78 неожиданно расширил возможности по автоматическому продлении жизни временных объектов. Теперь в нем можно, например, написать так
Rust в версии 1.78 неожиданно расширил возможности по автоматическому продлению жизни временных объектов. Теперь в нем можно, например, написать так
```Rust
let uri: &str = ...;
@@ -10,7 +10,7 @@ let uri: &str = ...;
let updated_uri: &str = if !query.is_empty() {
// Можно вернуть ссылку на временную строку!
// ее время жизни будет автоматически продлено
// Ранее этот код не проходил проверку заимствований\
// Ранее этот код не проходил проверку заимствований
// и не компилировался
&format!("{uri}?{query}")
} else {
@@ -39,7 +39,7 @@ let updated_uri: Cow<str> = if !query.is_empty() {
};
```
Особенно удобным становилось испольщование динамически полиморфных интерфейсов
Особенно удобным становилось использование динамически полиморфных интерфейсов
```Rust
let output: &mut dyn std::io::Write = match confg {
@@ -274,6 +274,13 @@ void test_ternary_inheritance_derived(bool cond, const Derived& a) {
x.foo();
y.foo();
}
int main() {
const Derived d;
test_ternary_inheritance_derived(true, d);
test_ternary_inheritance_derived(false, d);
}
```
В свете всего того что мы уже увидели, результат окажется весьма неожиданным...