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 ch06-00-01 #878

Merged
merged 3 commits into from
Jun 28, 2022
Merged

fix ch06-00-01 #878

merged 3 commits into from
Jun 28, 2022

Conversation

aleksandr-shevchenko
Copy link
Contributor

No description provided.

@@ -161,13 +165,12 @@ enum Option<T> {

Другими словами, вы должны преобразовать `Option<T>` в `T` прежде чем вы сможете выполнять операции с этим `T`. Как правило, это помогает выявить одну из наиболее распространённых проблем с null: когда мы предполагаем, что что-то не равно null, хотя <em>на самом деле</em> оно null.

С Rust не нужно беспокоиться о неправильном предположении касательно не-null значения, это помогает чувствовать себя более уверенно. Для того, чтобы иметь значение, которое может быть null, вы должны явно сказать об этом, указав тип `T` этого значения как `Option<T>` <em>(обернуть его в Option)</em>. Затем, когда вы используете это значение, вы обязаны явно обрабатывать случай, когда значение равно null. Везде, где значение имеет тип, не являющий `Option<T>`, вы *можете* смело рассчитывать на то, что значение не равно null. Такой подход - продуманное проектное решение в Rust, ограничивающее распространение null и увеличивающее безопасность Rust кода.
Устранение риска ошибочного предположения касательно не-null значения помогает вам быть более уверенным в своём коде. Чтобы иметь значение, которое может быть нулевым, вы должны явно согласиться, сделав тип этого значения `Option<T>`. Затем, когда вы используете это значение, вы обязаны явно обрабатывать случай, когда значение равно null. Везде, где значение имеет тип, отличный от `Option<T>`, вы *можете* смело рассчитывать на то, что значение не равно null. Это продуманное проектное решение в Rust, ограничивающее распространение null и увеличивающее безопасность Rust кода.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай тут "не-null" заменим на "не нулевой"? Чтобы единнобразно было

Copy link
Contributor Author

@aleksandr-shevchenko aleksandr-shevchenko Jun 26, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Написал снала, что "можно", потом подумал, что не надо. А то некоторые будут думать, что речь идёт о сравнении с нулём, а в тексте речь об null и not-null значениях...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

либо если еспользовать слово "не нулевой", то с прицепкой, вот так "не нулевое (not-null)", чтобы подчеркнуть о чём идёт речь.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вот меня тоже зацепило эта путаница с нулём тут.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я завтра немного поменяю текст, посмотрите ещё раз.

Задам ещё вопрос. Давайте трейты называть "трейтами", а не "типажами". Слово "трейт" уже прочно вошло в наш язык, во всех видео авторы говорят именно "трейт", и в PHP трейты как трейты...
Зачем мы в этой книге извращаемся с "типажом"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По трейтам и типажаам сюда. Как только будет выработано единое мнение, тогда и можно будет его использовать. Пока что лучше "типаж"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А я за "трейт")

@funkill funkill merged commit 6ced82e into rust-lang-ru:master Jun 28, 2022
@aleksandr-shevchenko aleksandr-shevchenko deleted the ch06 branch June 28, 2022 18:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants