From 6471992b4a68ede5a0f8a31fe46ff15869109edf Mon Sep 17 00:00:00 2001 From: Nekrolm Date: Sun, 15 Sep 2024 18:18:16 +0100 Subject: [PATCH] small typos --- lifetime/ternary_operator.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lifetime/ternary_operator.md b/lifetime/ternary_operator.md index b12fdd0..35c033d 100644 --- a/lifetime/ternary_operator.md +++ b/lifetime/ternary_operator.md @@ -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 = 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); +} ``` В свете всего того что мы уже увидели, результат окажется весьма неожиданным...