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
5
  • Loading branch information
AveNRU committed Sep 6, 2024
commit 7418d51920712f2b5d9f21b265af5a8ddd6bb3b2
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 @@ -190,5 +190,5 @@
`[...]` | Запись массива
`[expr; len]` | Запись массива, содержащий `len` повторов `expr`
`[type; len]` | Массив, содержащий `len` образцов вида `type`
`expr[expr]` | Взятие по порядковому указателю в собрания. Возможна перегрузка (`Index`, `IndexMut`)
`expr[expr]` | Взятие по порядковому указателю в собрании. Возможна перегрузка (`Index`, `IndexMut`)
`expr[..]`, `expr[a..]`, `expr[..b]`, `expr[a..b]` | Взятие среза собрания по порядковому указателю, используется `Range`, `RangeFrom`, `RangeTo`, или `RangeFull` как "порядковый указатель"
2 changes: 1 addition & 1 deletion rustbook-ru/src/appendix-07-nightly-rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ $ rustup override set nightly

Итак, как вы узнаете об этих новых возможностях? Прообраз разработки Ржавчина следует *этапу запроса примечаний (RFC - Request For Comments)*. Если хотите улучшить Ржавчина, вы можете написать предложение, которое называется RFC.

Любой может написать RFC для улучшения Ржавчина предложения рассматриваются и обсуждаются объединением Ржавчина, которая состоит из множества связанных между собой объединений и общин. На [сетевом-сайте Ржавчины](https://www.rust-lang.org/governance) есть полный список приказов, который включает приказы для каждой области дела: внешний вид языка, выполнение сборщика, инфраустройства, пособие и многое другое. Соответствующая приказ читает предложение и примечания, пишет некоторые собственные примечания и в конечном итоге, приходит к согласию принять или отклонить эту возможность.
Любой может написать RFC для улучшения Ржавчина предложения рассматриваются и обсуждаются объединением Ржавчина, которая состоит из множества связанных между собой объединений и общин. На [сетевом-сайте Ржавчины](https://www.rust-lang.org/governance) есть полный список приказов, который включает приказы для каждой области дела: внешний вид языка, выполнение сборщика, инфраустройства, пособие и многое другое. Соответствующая приказ считывает предложение и примечания, пишет некоторые собственные примечания и в конечном итоге, приходит к согласию принять или отклонить эту возможность.

Если новая возможность принята и кто-то может выполнить её, то задача открывается в хранилища Ржавчина. Человек выполняющий её, вполне может не быть тем, кто предложил эту возможность! Когда выполнение готова, она попадает в `master` ветвь с клеймом функции, как мы обсуждали в разделе ["Небезотказных функциях"](#unstable-features)<!-- -->.

Expand Down
2 changes: 1 addition & 1 deletion rustbook-ru/src/ch03-05-control-flow.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ again!

#### Круговорот по элементам собрания с помощью `for`<a id="looping-through-a-collection-with-for"></a>

Для перебора элементов собрания, например, массива, можно использовать устройство `while`. Например, круговорот в приложении 3-4 выводит каждый элемент массива `a`.
Для перебора элементов собрании, например, массива, можно использовать устройство `while`. Например, круговорот в приложении 3-4 выводит каждый элемент массива `a`.

<span class="filename">Имя файла: src/main.rs</span>

Expand Down
2 changes: 1 addition & 1 deletion rustbook-ru/src/ch04-01-what-is-ownership.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ let s = String::from("hello");

Ранее мы сказали, что когда переменная выходит за пределы области видимости, Ржавчина самостоятельно вызывает функцию `drop` и очищает память в куче для данной переменной. Но на рис. 4.2 оба указателя данных указывают на одно и то же место. Это неполадка: когда переменные `s2` и `s1` выходят из области видимости, они обе будут пытаться освободить одну и ту же память в куче. Это известно как *ошибка двойного освобождения (double free)* и является одной из ошибок безопасности памяти, упоминаемых ранее. Освобождение памяти дважды может привести к повреждению памяти, что возможно может привести к уязвимостям безопасности.

Чтобы обеспечить безопасное управлению памятью, после строки `let s2 = s1;` , Ржавчина считает `s1` более недействительным. Следовательно, Ржавчине не нужно ничего освобождать, когда `s1` выходит за пределы области видимости. Посмотрите, что происходит, когда вы пытаетесь использовать `s1` после создания `s2` ; это не сработает:
Чтобы обеспечить безопасное управлению памятью, после строки `let s2 = s1;` , Ржавчина ссчитывает `s1` более недействительным. Следовательно, Ржавчине не нужно ничего освобождать, когда `s1` выходит за пределы области видимости. Посмотрите, что происходит, когда вы пытаетесь использовать `s1` после создания `s2` ; это не сработает:

```rust,ignore,does_not_compile
{{#rustdoc_include ../listings/ch04-understanding-ownership/no-listing-04-cant-use-after-move/src/main.rs:here}}
Expand Down
8 changes: 4 additions & 4 deletions rustbook-ru/src/ch04-02-references-and-borrowing.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@
{{#rustdoc_include ../listings/ch04-understanding-ownership/no-listing-08-reference-with-annotations/src/main.rs:here}}
```

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

Мы называем этап создания ссылки *заимствованием*. Как и в существующей жизни, если человек чем-то владеет, вы можете это у него позаимствовать. Когда вы закончите, вы должны вернуть это законному владельцу.

А что произойдёт, если попытаться изменить то, что было позаимствовано? Попробуйте рукопись приложения 4-6 Спойлер: эта рукопись не сработает!
А что произойдёт, если попытаться изменить то, что было позаимствовано? Попробуйте рукопись приложения 4-6 К сведению: эта рукопись не сработает!

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

Expand Down Expand Up @@ -110,7 +110,7 @@

Вау! У нас *также* не может быть изменяемой ссылки, пока у нас есть неизменяемая ссылка на то же значение переменной.

Пользователи неизменяемой ссылки не ожидают, что значение переменной внезапно изменится из-под них! Однако разрешены множественные неизменяемые ссылки, потому что никто, кто просто читает данные, не может повлиять на чтение данных кем-либо ещё.
Пользователи неизменяемой ссылки не ожидают, что значение переменной внезапно изменится из-под них! Однако разрешены множественные неизменяемые ссылки, потому что никто, кто просто считывает данные, не может повлиять на чтение данных кем-либо ещё.

Обратите внимание, что область действия ссылки начинается с того места, где она была введена, и продолжается до последнего использования этой ссылки. Например, эта рукопись будет собираться, потому что последнее использование неизменяемых ссылок `println!`, происходит до того, как вводится изменяемая ссылка:

Expand Down Expand Up @@ -155,7 +155,7 @@ for it to be borrowed from
{{#rustdoc_include ../listings/ch04-understanding-ownership/no-listing-15-dangling-reference-annotated/src/main.rs:here}}
```

Поскольку `s` создаётся внутри `dangle`, когда рукопись `dangle` будет завершён, `s` будет освобождена. Но мы попытались вернуть ссылку на неё. Это означает, что эта ссылка будет указывать на недопустимую `String`. Это нехорошо! Ржавчина не позволит нам сделать это.
Поскольку `s` создаётся внутри `dangle`, когда рукопись `dangle` будет завершена, `s` будет освобождена. Но мы попытались вернуть ссылку на неё. Это означает, что эта ссылка будет указывать на недопустимую `String`. Это нехорошо! Ржавчина не позволит нам сделать это.

Решением будет вернуть непосредственно `String`:

Expand Down
Loading