From 4d5ec5cdc6a3dfe31f7c6d42ea03aac316d62b71 Mon Sep 17 00:00:00 2001 From: Dmitry Luschan Date: Thu, 9 Nov 2023 11:58:35 +0000 Subject: [PATCH] Translate ch15-03-drop.md via GitLocalize --- rustbook-ru/src/ch15-03-drop.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rustbook-ru/src/ch15-03-drop.md b/rustbook-ru/src/ch15-03-drop.md index 873d5a238..495176ec9 100644 --- a/rustbook-ru/src/ch15-03-drop.md +++ b/rustbook-ru/src/ch15-03-drop.md @@ -6,7 +6,7 @@ В некоторых языках для некоторых типов программист должен вызывать код для освобождения памяти или ресурсов каждый раз, когда он завершает использование экземпляров этих типов. Примерами могут служить дескрипторы файлов, сокеты или блокировки. Если забыть об этом, система окажется перегруженной и может упасть. В Rust вы можете указать, что определённый фрагмент кода должен выполняться всякий раз, когда значение выходит из области видимости, и компилятор автоматически будет его вставлять. Как следствие, вам не нужно заботиться о размещении кода очистки везде в программе, где завершается работа экземпляра определённого типа - утечки ресурсов все равно не будет! -Вы можете задать определённую логику, которая будет выполняться, когда значение выходит за пределы области видимости, реализовав признак `Drop`. Типаж `Drop` требует от вас реализации одного метода `drop`, который принимает изменяемую ссылку на `self`. Чтобы увидеть, когда Rust вызывает `drop`, давайте реализуем `drop` с помощью операторов `println!`. +Вы можете задать определённую логику, которая будет выполняться, когда значение выходит за пределы области видимости, реализовав признак `Drop`. Типаж `Drop` требует от вас реализации одного метода `drop`, который принимает изменяемую ссылку на `self`. Чтобы увидеть, когда Rust вызывает `drop`, давайте реализуем `drop` с помощью инструкций `println!`. В листинге 15-14 показана структура `CustomSmartPointer`, единственной уникальной функциональностью которой является печать `Dropping CustomSmartPointer!`, когда экземпляр выходит из области видимости, чтобы показать, когда Rust выполняет функцию `drop`.