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

Fix typography (em-dash) #1125

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion rustbook-ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Данный репозиторий содержит перевод второго издания “Язык программирования Rust”.

Второе издание - это переработанная книга "The Rust Programming Language", которая будет напечатана издательством "No Starch Press" ориентировочно в мае 2018 года. Последнюю информацию о дате выхода книги и о способе ее заказа вы можете узнать на официальном сайте издательства [No Starch Press][nostarch].
Второе издание это переработанная книга "The Rust Programming Language", которая будет напечатана издательством "No Starch Press" ориентировочно в мае 2018 года. Последнюю информацию о дате выхода книги и о способе ее заказа вы можете узнать на официальном сайте издательства [No Starch Press][nostarch].

[nostarch]: https://nostarch.com/rust

Expand Down
2 changes: 1 addition & 1 deletion rustbook-ru/src/ch01-00-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Rust - это язык программирования, с помощью ко
ресурсов. Это позволяет повысить производительность работы программ и заранее
оптимизировать объём используемых системных ресурсов. Благодаря этим особенностям
Rust — это удобный инструмент для создания решений в следующих прикладных областях:
приложения с предопределёнными жёсткими квотами ресурсов - кодеки, драйверы устройств,
приложения с предопределёнными жёсткими квотами ресурсов кодеки, драйверы устройств,
драйверы баз данных и даже встроенные системы. Rust весьма удобен для создания
веб-приложений. Менеджер пакетов [crates.io] позволяет создавать высоконагруженные
решения без неизбежных расходов многослойных, высокоуровневых альтернатив. Просто
Expand Down
2 changes: 1 addition & 1 deletion rustbook-ru/src/ch01-02-hello-world.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Привет, мир!

Итак, когда Rust уже установлен, можно приступать к написанию вашей первой программы. Общая традиция при изучении нового языка программирования - писать маленькую программу, которая печатает в строке вывода `"Hello, world!"`. Давайте сделаем то же самое.
Итак, когда Rust уже установлен, можно приступать к написанию вашей первой программы. Общая традиция при изучении нового языка программирования писать маленькую программу, которая печатает в строке вывода `"Hello, world!"`. Давайте сделаем то же самое.

> Примечание: Эта книга предполагает наличие базового навыка работы с командной строкой. Rust не предъявляет особых требований к тому, каким инструментарием вы пользуетесь для редактирования или хранения вашего кода, поэтому если вы предпочитаете использовать интегрированную среду разработки (IDE) вместо командной строки, смело используйте вашу любимую IDE. Многие IDE сейчас в той или иной степени поддерживают Rust; подробности можно узнать из документации к IDE. Команда Rust сосредоточилась на обеспечении отличной поддержки IDE с помощью `rust-analyzer`. Более подробную информацию смотрите в [Приложении D]<!-- ignore -->!

Expand Down
2 changes: 1 addition & 1 deletion rustbook-ru/src/ch03-03-how-functions-work.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@

Оператор `let y = 6` не возвращает значение, поэтому не с чем связать переменную `x`. Это отличается от поведения в других языках, таких как C и Ruby, где операция присваивания возвращает значение присваивания. В таких языках можно писать код `x = y = 6` и обе переменные `x` и `y` будут иметь одинаковое значение `6`. Но в Rust не так.

Выражения вычисляют значение и составляют большую часть остального кода, который вы напишете на Rust. Рассмотрим математическую операцию, к примеру `5 + 6`, которая является выражением, вычисляющим значение `11`. Выражения могут быть частью операторов: в листинге 3-1 `6` в операторе `let y = 6;` является выражением, которое вычисляется в значение `6`. Вызов функции - это выражение. Вызов макроса - это выражение. Новый блок области видимости, созданный с помощью фигурных скобок, представляет собой выражение, например:
Выражения вычисляют значение и составляют большую часть остального кода, который вы напишете на Rust. Рассмотрим математическую операцию, к примеру `5 + 6`, которая является выражением, вычисляющим значение `11`. Выражения могут быть частью операторов: в листинге 3-1 `6` в операторе `let y = 6;` является выражением, которое вычисляется в значение `6`. Вызов функции это выражение. Вызов макроса это выражение. Новый блок области видимости, созданный с помощью фигурных скобок, представляет собой выражение, например:

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

Expand Down
4 changes: 2 additions & 2 deletions rustbook-ru/src/ch03-04-comments.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Комментарии

Все хорошие программисты, создавая программный код, стремятся сделать его простым для понимания. Бывают всё же случаи, когда дополнительное описание просто необходимо. В этих случаях программисты пишут заметки (или как их ещё называют, комментарии). Комментарии игнорируются компилятором, но для тех кто код читает - это очень важная часть документации.
Все хорошие программисты, создавая программный код, стремятся сделать его простым для понимания. Бывают всё же случаи, когда дополнительное описание просто необходимо. В этих случаях программисты пишут заметки (или как их ещё называют, комментарии). Комментарии игнорируются компилятором, но для тех кто код читает это очень важная часть документации.

Пример простого комментария:

Expand Down Expand Up @@ -32,4 +32,4 @@
{{#rustdoc_include ../listings/ch03-common-programming-concepts/no-listing-25-comments-above-line/src/main.rs}}
```

Также в Rust есть другой тип комментариев - документирующие комментарии, которые мы обсудим в разделе "Публикация пакета на Crates.io" Главы 14.
Также в Rust есть другой тип комментариев документирующие комментарии, которые мы обсудим в разделе "Публикация пакета на Crates.io" Главы 14.
2 changes: 1 addition & 1 deletion rustbook-ru/src/ch04-00-understanding-ownership.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Понимание Владения

Владение - это самая уникальная особенность Rust, которая имеет глубокие последствия для всего языка. Это позволяет Rust обеспечивать безопасность памяти без использования сборщика мусора, поэтому важно понимать, как работает владение. В этой главе мы поговорим о владении, а также о нескольких связанных с ним возможностях: заимствовании, срезах и о том, как Rust раскладывает данные в памяти.
Владение это самая уникальная особенность Rust, которая имеет глубокие последствия для всего языка. Это позволяет Rust обеспечивать безопасность памяти без использования сборщика мусора, поэтому важно понимать, как работает владение. В этой главе мы поговорим о владении, а также о нескольких связанных с ним возможностях: заимствовании, срезах и о том, как Rust раскладывает данные в памяти.
4 changes: 2 additions & 2 deletions rustbook-ru/src/ch04-03-slices.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ fn second_word(s: &String) -> (usize, usize) {

### Строковые срезы

Строковый срез - это ссылка на часть строки `String` и он выглядит следующим образом:
Строковый срез это ссылка на часть строки `String` и он выглядит следующим образом:

```rust
{{#rustdoc_include ../listings/ch04-understanding-ownership/no-listing-17-slice/src/main.rs:here}}
Expand Down Expand Up @@ -152,7 +152,7 @@ fn second_word(s: &String) -> &str {

<a id="string-literals-are-slices"></a>

#### Строковые литералы - это срезы
#### Строковые литералы это срезы

Напомним, что мы говорили о строковых литералах, хранящихся внутри бинарного файла. Теперь, когда мы знаем чем являются срезы, мы правильно понимаем что такое строковые литералы:

Expand Down
2 changes: 1 addition & 1 deletion rustbook-ru/src/ch05-01-defining-structs.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

<span class="caption">Листинг 5-1: Определение структуры <code>User</code></span>

После определения структуры можно создавать её *экземпляр*, назначая определённое значение каждому полю с соответствующим типом данных. Чтобы создать экземпляр, мы указываем имя структуры, затем добавляем фигурные скобки и включаем в них пары `ключ: значение` (key: value), где ключами являются имена полей, а значениями являются данные, которые мы хотим сохранить в полях. Нет необходимости чётко следовать порядку объявления полей в описании структуры (но всё-таки желательно для удобства чтения). Другими словами, объявление структуры - это как шаблон нашего типа, в то время как экземпляр структуры использует этот шаблон, заполняя его определёнными данными, для создания значений нашего типа. Например, можно объявить пользователя как в листинге 5-2:
После определения структуры можно создавать её *экземпляр*, назначая определённое значение каждому полю с соответствующим типом данных. Чтобы создать экземпляр, мы указываем имя структуры, затем добавляем фигурные скобки и включаем в них пары `ключ: значение` (key: value), где ключами являются имена полей, а значениями являются данные, которые мы хотим сохранить в полях. Нет необходимости чётко следовать порядку объявления полей в описании структуры (но всё-таки желательно для удобства чтения). Другими словами, объявление структуры это как шаблон нашего типа, в то время как экземпляр структуры использует этот шаблон, заполняя его определёнными данными, для создания значений нашего типа. Например, можно объявить пользователя как в листинге 5-2:

```rust
{{#rustdoc_include ../listings/ch05-using-structs-to-structure-related-data/listing-05-02/src/main.rs:here}}
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 @@ -65,7 +65,7 @@
> (&p1).distance(&p2);
> ```
>
> Первый пример выглядит намного понятнее. Автоматический вывод ссылки работает потому, что методы имеют понятного получателя - тип `self`. Учитывая получателя и имя метода, Rust может точно определить, что в данном случае делает код: читает ли метод (`&self`), делает ли изменение (`&mut self`) или поглощает (`self`). Тот факт, что Rust делает заимствование неявным для принимающего метода, в значительной степени способствует тому, чтобы сделать владение эргономичным на практике.
> Первый пример выглядит намного понятнее. Автоматический вывод ссылки работает потому, что методы имеют понятного получателя тип `self`. Учитывая получателя и имя метода, Rust может точно определить, что в данном случае делает код: читает ли метод (`&self`), делает ли изменение (`&mut self`) или поглощает (`self`). Тот факт, что Rust делает заимствование неявным для принимающего метода, в значительной степени способствует тому, чтобы сделать владение эргономичным на практике.

### Методы с несколькими параметрами

Expand Down
2 changes: 1 addition & 1 deletion rustbook-ru/src/ch06-02-match.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

Давайте разберём `match` в функции `value_in_cents`. Сначала мы используем ключевое слово `match`, за которым следует выражение, которое в данном случае является значением `coin`. Это кажется очень похожим на выражение, используемое в `if`, но есть большая разница: в `if` выражение должно возвращать булево значение, а здесь оно может возвращать любой тип. Типом `coin` в данном примере является перечисление `Coin`, которое мы определили в первой строке.

Далее идут ветки `match`. Ветки состоят из двух частей: шаблон и некоторый код. Здесь первая ветка имеет шаблон, который является значением `Coin::Penny`, затем идёт оператор `=>`, который разделяет шаблон и код для выполнения. Код в этом случае - это просто значение `1`. Каждая ветка отделяется от последующей при помощи запятой.
Далее идут ветки `match`. Ветки состоят из двух частей: шаблон и некоторый код. Здесь первая ветка имеет шаблон, который является значением `Coin::Penny`, затем идёт оператор `=>`, который разделяет шаблон и код для выполнения. Код в этом случае это просто значение `1`. Каждая ветка отделяется от последующей при помощи запятой.

Когда выполняется выражение `match`, оно сравнивает полученное значение с образцом каждой ветки по порядку. Если шаблон совпадает со значением, то выполняется код, связанный с этим шаблоном. Если этот шаблон не соответствует значению, то выполнение продолжается со следующей ветки, так же, как в автомате по сортировке монет. У нас может быть столько веток, сколько нужно: в листинге 6-3 наш `match` состоит из четырёх веток.

Expand Down
Loading