Skip to content

Commit

Permalink
Translate ch13-01-closures.md via GitLocalize
Browse files Browse the repository at this point in the history
  • Loading branch information
alexted authored and gitlocalize-app[bot] committed Dec 10, 2023
1 parent 1463185 commit d31c55f
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions rustbook-ru/src/ch13-01-closures.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ let add_one_v4 = |x| x + 1 ;

Эта техника в основном полезна при передаче замыкания новому потоку, чтобы переместить данные так, чтобы они принадлежали новому потоку. Мы подробно обсудим потоки и то, зачем их использовать, в главе 16, когда будем говорить о параллелизме, а пока давайте вкратце рассмотрим порождение нового потока с помощью замыкания, в котором используется ключевое слово `move`. В листинге 13-6 показан код из листинга 13-4, модифицированный для печати вектора в новом потоке, а не в основном потоке:

<span class="filename">Filename: src/main.rs</span>
<span class="filename">Файл : src/main.rs</span>

```rust
{{#rustdoc_include ../listings/ch13-functional-features/listing-13-06/src/main.rs}}
Expand Down Expand Up @@ -181,7 +181,7 @@ impl<T> Option<T> {
Теперь рассмотрим метод стандартной библиотеки `sort_by_key`, определённый у срезов, чтобы увидеть, чем он отличается от `unwrap_or_else` и почему `sort_by_key` использует `FnMut` вместо `FnOnce` для ограничения трейта. Замыкание принимает единственный аргумент в виде ссылки на текущий элемент в рассматриваемом срезе и возвращает значение типа `K`, к которому применима сортировка. Эта функция полезна, когда вы хотите отсортировать срез по определённому атрибуту каждого элемента. В листинге 13-7 у нас есть список экземпляров `Rectangle`, и мы используем `sort_by_key`, чтобы упорядочить их по атрибуту `width` от меньшего к большему:

<span class="filename">Filename: src/main.rs</span>
<span class="filename">Файл : src/main.rs</span>

```rust
{{#rustdoc_include ../listings/ch13-functional-features/listing-13-07/src/main.rs}}
Expand Down Expand Up @@ -224,3 +224,5 @@ impl<T> Option<T> {
<span class="caption">Листинг 13-9: Использование замыкания <code>FnMut</code> с <code>sort_by_key</code> разрешено</span>

Трейты `Fn` важны при определении или использовании функций или типов, использующих замыкания. В следующем разделе мы обсудим итераторы. Многие методы итераторов принимают аргументы в виде замыканий, поэтому не забывайте об этих деталях, пока мы продвигаемся дальше!


0 comments on commit d31c55f

Please sign in to comment.