Skip to content

Commit

Permalink
Merge pull request #1313 from rust-lang-ru/gitlocalize-27038
Browse files Browse the repository at this point in the history
Translate ch15-03-drop.md via GitLocalize
  • Loading branch information
ava57r authored Nov 23, 2023
2 parents 56e64af + 4d5ec5c commit e6507d2
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion rustbook-ru/src/ch15-03-drop.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.

Expand Down

0 comments on commit e6507d2

Please sign in to comment.