Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial commit #1397

Open
wants to merge 92 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
4707105
Initial commit
AveNRU Aug 26, 2024
c3f0f26
Initial commit
AveNRU Aug 26, 2024
f56f8c1
обновление
AveNRU Aug 26, 2024
5a98dbf
2
AveNRU Aug 26, 2024
ed7b7d2
2 день
AveNRU Aug 27, 2024
8db288e
3
AveNRU Aug 29, 2024
06613b5
4
AveNRU Aug 29, 2024
cec9896
4
AveNRU Aug 29, 2024
aa29d49
5
AveNRU Aug 30, 2024
54cb968
5
AveNRU Aug 30, 2024
297938c
5
AveNRU Aug 30, 2024
08f129a
Merge branch 'rus2' of https://github.com/AveNRU/book into rus2
AveNRU Aug 30, 2024
d3951b8
Update .gitignore
AveNRU Aug 30, 2024
eeede08
6
AveNRU Aug 30, 2024
0c8c64f
6
AveNRU Aug 30, 2024
a826355
6
AveNRU Aug 30, 2024
7fcbf0b
Update README.md
AveNRU Aug 30, 2024
afea5b5
6
AveNRU Aug 31, 2024
19184b5
6
AveNRU Aug 31, 2024
fda90fd
6
AveNRU Aug 31, 2024
90fb1f4
6
AveNRU Aug 31, 2024
df1fb71
6
AveNRU Aug 31, 2024
1ac9b31
Update ch03-02-data-types.md
AveNRU Aug 31, 2024
85d0f1c
6
AveNRU Aug 31, 2024
8026f7c
Update заимствованные слова1.xlsx
AveNRU Aug 31, 2024
c88b08b
6
AveNRU Sep 2, 2024
1620aee
Revert "6"
AveNRU Sep 2, 2024
a5d5f5f
понедельник утро - работа
AveNRU Sep 2, 2024
4b5c396
7
AveNRU Sep 2, 2024
a261077
5
AveNRU Sep 2, 2024
9d8df55
5
AveNRU Sep 2, 2024
c18d57f
6
AveNRU Sep 2, 2024
09499d5
5
AveNRU Sep 2, 2024
dcfc9d1
6
AveNRU Sep 2, 2024
824277a
Update заимствованные слова1.xlsx
AveNRU Sep 3, 2024
2203ee9
7
AveNRU Sep 3, 2024
a25587c
6
AveNRU Sep 3, 2024
a9f71f2
6
AveNRU Sep 3, 2024
fd20d27
s
AveNRU Sep 4, 2024
72ffff2
32
AveNRU Sep 4, 2024
e93acad
5
AveNRU Sep 4, 2024
a636b8a
5
AveNRU Sep 4, 2024
08d3b90
56
AveNRU Sep 5, 2024
4f149d0
5
AveNRU Sep 5, 2024
7418d51
5
AveNRU Sep 6, 2024
43ef2ca
5
AveNRU Sep 6, 2024
a2f25bc
5
AveNRU Sep 6, 2024
e3e607b
Update ch08-02-strings.md
AveNRU Sep 6, 2024
d9166bb
6
AveNRU Sep 6, 2024
1cea52f
+
AveNRU Sep 6, 2024
fc27f89
+
AveNRU Sep 6, 2024
e22c0d7
6
AveNRU Sep 9, 2024
8111509
6
AveNRU Sep 9, 2024
498538f
6
AveNRU Sep 9, 2024
891c4e7
5
AveNRU Sep 10, 2024
fac1f31
5
AveNRU Sep 10, 2024
9076007
5
AveNRU Sep 10, 2024
123ccc8
Merge branch 'rus2' of https://github.com/AveNRU/book into rus2
AveNRU Sep 10, 2024
8d76a6f
6
AveNRU Sep 11, 2024
d966ce6
Update ch02-00-guessing-game-tutorial.md
AveNRU Sep 11, 2024
2ab19c4
5
AveNRU Sep 11, 2024
c4e153d
Update заимствованные слова1.xlsx
AveNRU Sep 11, 2024
34f1af2
6
AveNRU Sep 11, 2024
5cf9b5c
1
AveNRU Sep 11, 2024
22c42a9
5
AveNRU Sep 11, 2024
5a53d70
6
AveNRU Sep 11, 2024
859466d
5
AveNRU Sep 12, 2024
4f3bb29
5
AveNRU Sep 12, 2024
4da7a6f
5
AveNRU Sep 12, 2024
37a0385
Update ch13-02-iterators.md
AveNRU Sep 13, 2024
9a577ce
+
AveNRU Sep 16, 2024
ce93102
+
AveNRU Sep 17, 2024
047d521
+
AveNRU Sep 18, 2024
3747233
+
AveNRU Sep 18, 2024
c26e788
+
AveNRU Sep 20, 2024
f94fc3c
+
AveNRU Sep 20, 2024
1c4fc7a
+
AveNRU Sep 20, 2024
ee9a1f9
+
AveNRU Sep 23, 2024
07264b9
+
AveNRU Sep 23, 2024
0e4976f
+
AveNRU Sep 24, 2024
2f2662d
+
AveNRU Sep 24, 2024
a4b3e71
+
AveNRU Sep 25, 2024
2425f3e
+
AveNRU Sep 25, 2024
9e4d786
+
AveNRU Sep 25, 2024
00a0744
+
AveNRU Sep 26, 2024
3e6ef18
+
AveNRU Sep 26, 2024
8922d8a
+
AveNRU Sep 26, 2024
bd5f264
+
AveNRU Sep 27, 2024
91d8f70
+
AveNRU Sep 30, 2024
b9ce9ac
+
AveNRU Sep 30, 2024
1010b71
+
AveNRU Sep 30, 2024
01d7f87
+
AveNRU Sep 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
6
  • Loading branch information
AveNRU committed Sep 3, 2024
commit a25587c56c6010e571b7ec8374b17450f00ed5d2
2 changes: 1 addition & 1 deletion rustbook-ru/src/appendix-01-keywords.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@

### Сырые определители

*Сырые определители* — это правила написания, позволяющий использовать ключевые слова там, где обычно они не могут быть. Для создания и использования сырого определителя к ключевому слову добавляется приставка `r#`.
*Сырые определители* — это правила написания, позволяющие использовать ключевые слова там, где обычно они не могут быть. Для создания и использования сырого определителя к ключевому слову добавляется приставка `r#`.

Например, ключевое слово `match`. Если вы попытаетесь собрать следующую функцию, использующую в качестве имени `match`:

Expand Down
2 changes: 1 addition & 1 deletion rustbook-ru/src/appendix-02-operators.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
`..=` | `..=expr`, `expr..=expr` | Указывает на ряд чисел, включая правый | `PartialOrd`
`..` | `..expr` | правила написания обновления устройства |
`..` | `variant(x, ..)`, `struct_type { x, .. }` | Привязка «И все остальное» |
`...` | `expr...expr` | (Устарело, используйте новое правила написания `..=`) Используется при определении инклюзивного ряда|
`...` | `expr...expr` | (Устарело, используйте новое правило написания `..=`) Используется при определении инклюзивного ряда|
`/` | `expr / expr` | Арифметическое деление | `Div`
`/=` | `var /= expr` | Арифметическое деление и присваивание | `DivAssign`
`:` | `pat: type`, `ident: type` | Ограничения видов |
Expand Down
8 changes: 3 additions & 5 deletions rustbook-ru/src/ch04-01-what-is-ownership.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@
>
> Многие языки программирования не требуют, чтобы вы слишком часто думали о обойме и куче. Но в языках системного программирования, одним из которых является Ржавчина, то, какое значение находится в обойме или в куче, влияет на поведение языка и на принятие вами определённых решений. Владение будет описано через призму обоймы и кучи позже в этой главе, а пока — краткое пояснение.
>
> И обойма, и куча — это части памяти, доступные вашей рукописи для использования во время выполнения. Однако они внутренне выстроенны

по-разному. Обойма хранит значения в порядке их получения, а удаляет — в обратном. Это называется *«последним пришёл — первым ушёл»*. Подумайте о стопке тарелок: когда вы добавляете тарелки, вы кладёте их сверху стопки — когда вам нужна тарелка, вы берёте одну так же сверху. Добавление или удаление тарелок посередине или снизу не сработает! Добавление данных называется *помещением в обойму*, а удаление — извлечением *из обоймы*. Все данные, хранящиеся в обойме, должны иметь известный определенный размер. Данные, размер которых во время сборки неизвестен или может измениться, должны храниться в куче.
> И обойма, и куча — это части памяти, доступные вашей рукописи для использования во время выполнения. Однако они внутренне выстроенны по-разному. Обойма хранит значения в порядке их получения, а удаляет — в обратном. Это называется *«последним пришёл — первым ушёл»*. Подумайте о стопке тарелок: когда вы добавляете тарелки, вы кладёте их сверху стопки — когда вам нужна тарелка, вы берёте одну так же сверху. Добавление или удаление тарелок посередине или снизу не сработает! Добавление данных называется *помещением в обойму*, а удаление — извлечением *из обоймы*. Все данные, хранящиеся в обойме, должны иметь известный определенный размер. Данные, размер которых во время сборки неизвестен или может измениться, должны храниться в куче.
>
> Куча устроена менее согласованно: когда вы кладёте данные в кучу, вы запрашиваете определённый размер пространства. Операционная система находит в куче свободный участок памяти достаточного размера, помечает его как используемый и возвращает *указатель*, являющийся адресом этого участка памяти. Этот этап называется *выделением памяти в куче* и иногда сокращается до *выделения памяти* (помещение значений в обойму не считается выделением). Поскольку указатель на участок памяти в куче имеет определённый определенный размер, его можно расположить в обойме, однако когда вам понадобятся актуальные данные, вам придётся проследовать по указателю. Представьте, что вы сидите в ресторане. Когда вы входите, вы называете количество человек в вашем объединении, и человек находит свободный стол, которого хватит на всех, и ведёт вас туда. Если кто-то из вашем объединении опоздает, он может спросить, куда вас посадили, чтобы найти вас.
>
Expand Down Expand Up @@ -69,7 +67,7 @@ let s = "hello";
let s = String::from("hello");
```

Приказчик "Двойное двоеточие" `::` позволяет использовать пространство имён данной функции `from` с видом `String`, а не какое-то иное имя, такое как `string_from`. Мы обсудим эти правила написания более подробно в разделе [«Правила написания способа»]. раздел <!-- ignore --> Главы 5, и в ходе обсуждения пространств имён с звенами в [ «Пути для обращения к элементу в дереве звеньев»]<!-- ignore --> в главе 7.
Приказчик "Двойное двоеточие" `::` позволяет использовать пространство имён данной функции `from` с видом `String`, а не какое-то иное имя, такое как `string_from`. Мы обсудим эти правила написания более подробно в разделе [«Правила написания способа»]. раздел <!-- ignore --> Главы 5, и в ходе обсуждения пространств имён со звеньями в [ «Пути для обращения к элементу в дереве звеньев»]<!-- ignore --> в главе 7.

Строка такого вида *может* быть изменяема:

Expand Down Expand Up @@ -98,7 +96,7 @@ let s = String::from("hello");
{{#rustdoc_include ../listings/ch04-understanding-ownership/no-listing-02-string-scope/src/main.rs:here}}
```

Существует естественный мгновение, когда мы можем вернуть память, необходимую нашему `String`, обратно распределителю — когда `s` выходит за пределы области видимости. Когда переменная выходит за пределы области видимости, Ржавчина вызывает для нас особую функцию. Эта функция называется [`drop`]<!-- ignore -->, и именно здесь составитель`String` может поместить рукопись для возврата памяти. Ржавчина самостоятельно вызывает `drop` после закрывающей узорчатой скобки.
Существует одна возможность, когда мы можем вернуть память, необходимую нашему `String`, обратно распределителю — когда `s` выходит за пределы области видимости. Когда переменная выходит за пределы области видимости, Ржавчина вызывает для нас особую функцию. Эта функция называется [`drop`]<!-- ignore -->, и именно здесь составитель`String` может поместить рукопись для возврата памяти. Ржавчина самостоятельно вызывает `drop` после закрывающей узорчатой скобки.

> Примечание: в C++ этот образец освобождения мощностей в конце времени жизни элемента иногда называется *«Получение ресурса есть объявление» (англ. Resource Acquisition Is Initialization (RAII))*. Функция `drop` в Ржавчине покажется вам знакомой, если вы использовали образцы RAII.

Expand Down
2 changes: 1 addition & 1 deletion rustbook-ru/src/ch05-03-method-syntax.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ Can rect1 hold rect3? false

Ключевые слова `Self` в возвращаемом виде и в теле функции являются псевдонимами для вида, указанного после ключевого слова `impl`, которым в данном случае является `Rectangle`.

Чтобы вызвать эту связанную функцию, используется правила написания `::` с именем устройства; например `let sq = Rectangle::square(3);`. Эта функция находится в пространстве имён устройства. правила написания `::` используется как для связанных функций, так и для пространств имён, созданных звенами. Мы обсудим звенья в [главе 7]<!-- ignore -->.
Чтобы вызвать эту связанную функцию, используется правила написания `::` с именем устройства; например `let sq = Rectangle::square(3);`. Эта функция находится в пространстве имён устройства. правила написания `::` используется как для связанных функций, так и для пространств имён, созданных звеньями. Мы обсудим звенья в [главе 7]<!-- ignore -->.

### Несколько разделов `impl`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,11 @@ backyard

<span class="caption">Приложение 7-1: Звено <code>front_of_house</code> , содержащий другие звенья, которые в свою очередь содержат функции</span>

Мы определяем звено, начиная с ключевого слова `mod`, затем определяем название звена (в данном случае `front_of_house`) и размещаем узорчатые скобки вокруг тела звена. Внутри звеньев, можно иметь другие звенья, как в случае с звенами `hosting` и `serving`. Звенья также могут содержать определения для других элементов, таких как устройства, перечисления, постоянные переменные, особенности или — как в приложении 7-1 — функции.
Мы определяем звено, начиная с ключевого слова `mod`, затем определяем название звена (в данном случае `front_of_house`) и размещаем узорчатые скобки вокруг тела звена. Внутри звеньев, можно иметь другие звенья, как в случае со звеньями `hosting` и `serving`. Звенья также могут содержать определения для других элементов, таких как устройства, перечисления, постоянные переменные, особенности или — как в приложении 7-1 — функции.

Используя звенья, мы можем объединять связанные определения вместе и сказать почему они являются связанными. Программистам будет легче найти необходимую возможность в объединенном рукописи, вместо того чтобы искать её в одном общем списке. Программисты, добавляющие новые функции в эту рукопись, будут знать, где разместить рукопись для поддержания порядка в программе.

Как мы упоминали ранее, файлы *src/main.rs* и *src/lib.rs* называются *корневыми звенами ящика*. Причина такого именования в том, что содержимое любого из этих двух файлов образует звено с именем `crate` в корне устройства звеньев ящика, известной как *дерево звеньев*.
Как мы упоминали ранее, файлы *src/main.rs* и *src/lib.rs* называются *корневыми звеньями ящика*. Причина такого именования в том, что содержимое любого из этих двух файлов образует звено с именем `crate` в корне устройства звеньев ящика, известной как *дерево звеньев*.

В приложении 7-2 показано дерево звеньев для устройства звеньев, приведённой в рукописи приложения 7-1.

Expand Down
4 changes: 1 addition & 3 deletions rustbook-ru/src/ch14-03-cargo-workspaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,9 +224,7 @@ error[E0432]: unresolved import `rand`
{{#rustdoc_include ../listings/ch14-more-about-cargo/no-listing-04-workspace-with-tests/add/add_one/src/lib.rs}}
```

Теперь запустите `cargo test` в папке верхнего уровня *add*. Запуск `cargo test` в рабочем пространстве, внутренне выстроеном

подобно этому, запустит проверки для всех ящиков в рабочем пространстве:
Теперь запустите `cargo test` в папке верхнего уровня *add*. Запуск `cargo test` в рабочем пространстве, внутренне упорядоченном подобно этому примеру, запустит проверки для всех ящиков в рабочем пространстве:

<!-- manual-regeneration
cd listings/ch14-more-about-cargo/no-listing-04-workspace-with-tests/add
Expand Down
3 changes: 1 addition & 2 deletions rustbook-ru/src/ch20-03-designing-the-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
Давайте поговорим о том, как должен выглядеть объединение Составители часто находят
что при попытке создать некоторую рукопись, напив сначала конечного потребителя внешнюю оболочка можно
лучше понять как лучше выполнить отделенную вычисляемую часть. Напишите API рукописи, который будет
внутренне выстроен таким образом, чтобы его было удобно вызывать, а затем выполните
возможность этого устройства, а не наоборот.
внутренне выстроен таким образом, чтобы его было удобно вызывать, а затем запустите способ этого устройства, а не наоборот.

Подобно тому, как мы использовали Test Driven Development в деле в главе 12,
здесь мы собираемся использовать Compiler Driven Development. Мы собираемся написать
Expand Down