Перевод "Rust by example"

577 views
Skip to first unread message

Egor Smolyakov

unread,
Aug 11, 2014, 7:15:53 PM8/11/14
to
Начал переводить книгу "Rust by example" (rustbyexample.com).
Message has been deleted
Message has been deleted
Message has been deleted

Владимир Матвеев

unread,
Aug 12, 2014, 2:18:58 AM8/12/14
to rust-r...@googlegroups.com

"определяет компьютер" -> "размер машинного слова"

Не совсем, это int/uint имеют размер указателя целевой системы. Например, для x32 машинное слово 64 бита, а размер указателя - 32, и int/uint будут размером именно 32 бита.

Andrey Lesnikov

unread,
Aug 12, 2014, 2:23:20 AM8/12/14
to rust-r...@googlegroups.com
Круто!

Сначала по странностям перевода, которые заметил, отписался тут, но потом увидел в конце статьи "Все замечания, ошибки или неточности отправляйте мне в почту.", удалил свои замечания отсюда и отправил личкой на хабре.

Andrey Lesnikov

unread,
Aug 12, 2014, 2:24:00 AM8/12/14
to rust-r...@googlegroups.com
В оригинале "integers: i8, i16, i32, i64 and int (machine word size)" - http://rustbyexample.com/type.html

Владимир Матвеев

unread,
Aug 12, 2014, 2:25:01 AM8/12/14
to rust-r...@googlegroups.com
А, точно. Значит, ошибка в первоисточнике. Про это несколько раз были обсуждения в rust-dev и /r/rust

Andrey Lesnikov

unread,
Aug 12, 2014, 2:27:07 AM8/12/14
to rust-r...@googlegroups.com
Да, странно, в http://doc.rust-lang.org/rust.html#machine-dependent-integer-types написано "Its size, in bits, is equal to the number of bits required to hold any memory address on the target machine.".

Egor Smolyakov

unread,
Aug 12, 2014, 3:06:01 AM8/12/14
to
Спасибо за замечания, уже часть исправил в статье.

Egor Smolyakov

unread,
Aug 12, 2014, 3:12:51 AM8/12/14
to rust-r...@googlegroups.com
И все-таки меня терзают сомнения перевода "machine word size", кажется, что "размер машинного слова" это не лучший (и не понятный с первого раза) вариант.
У кого-нибудь есть лучший вариант, кроме моего "определяет компьютер"?

Andrey Lesnikov

unread,
Aug 12, 2014, 3:35:02 AM8/12/14
to rust-r...@googlegroups.com
Можно тут использовать перевод фразы из руководства - "Its size, in bits, is equal to the number of bits required to hold any memory address on the target machine." - "размер равен количеству бит, нужных для хранения любого адреса памяти целевой машины" (как-то так)

Egor Smolyakov

unread,
Aug 12, 2014, 5:07:39 AM8/12/14
to
Я это понимаю так: если не указывать тип с количеством бит (например, u8), а обобщенный - uint, то рабочая станция (компьютер) по-своему усмотрению решает сколько выделять памяти.

Верно?

Владимир Матвеев

unread,
Aug 12, 2014, 5:12:31 AM8/12/14
to rust-r...@googlegroups.com
Нет, компьютер ничего сам не решает. Размер типа int/uint всегда такой, чтобы вмещать в себя любой машинный адрес на данной платформе. Например, если бы Rust запускался на какой-нибудь 16-битной системе, то размер int/uint был бы как минимум 16 бит (но, скорее всего, он был бы равен 16 бит). На Win32 размер должен быть как минимум 32 бита, потому что адрес в Win32 длиной 32 бита. И так далее. Но размер типа, естественно, фиксирован при компиляции и зависит от целевой (target) платформы.

Egor Smolyakov

unread,
Aug 12, 2014, 6:17:12 AM8/12/14
to rust-r...@googlegroups.com
Изменил на "размер зависит от платформы".

Также создал репозиторий по переводу https://github.com/eg0r/rust-by-example.

Egor Smolyakov

unread,
Aug 17, 2014, 6:17:42 PM8/17/14
to rust-r...@googlegroups.com
Опубликовал перевод глав 6-11: http://habrahabr.ru/post/233621/

Andrey Lesnikov

unread,
Aug 18, 2014, 2:19:12 AM8/18/14
to rust-r...@googlegroups.com
"In Rust, almost every statement is an expression" -> "В Rust почти все фигурные скобки являются выражением" - откуда фигурные скобки-то :) ?

"В Rust почти любой оператор (statement) так же является и выражением" - как-то так скорее.

Andrey Lesnikov

unread,
Aug 18, 2014, 2:20:49 AM8/18/14
to rust-r...@googlegroups.com
"если последнее выражение в блоке будет точкой с запятой" -> "если последнее выражение в блоке будет закачиваться точкой с запятой"

Andrey Lesnikov

unread,
Aug 18, 2014, 2:23:03 AM8/18/14
to rust-r...@googlegroups.com
Мне кажется, имеет смысл сохранять оригинальную нумерацию из rustbyexample.com, а не начинать заново в каждой статье.

Andrey Lesnikov

unread,
Aug 18, 2014, 2:24:44 AM8/18/14
to rust-r...@googlegroups.com
"а каждому условию необходимы фигурные скобки" - скорее "а после каждого условия необходимы фигурные скобки" ("each condition is followed by a block")

Andrey Lesnikov

unread,
Aug 18, 2014, 2:26:53 AM8/18/14
to rust-r...@googlegroups.com
"ярлык" я бы заменил на "метка" - это, как мне кажется, стандартный вариант перевода.

Владимир Матвеев

unread,
Aug 18, 2014, 3:57:41 AM8/18/14
to rust-r...@googlegroups.com
loop - это ни в коем случае не петля, это цикл.

lazy value generator - здесь lazy относится к generator, не к value => ленивый генератор (можно без "значений")

Egor Smolyakov

unread,
Aug 18, 2014, 8:26:29 AM8/18/14
to rust-r...@googlegroups.com
Почему тогда не используется "cycle"?

Egor Smolyakov

unread,
Aug 18, 2014, 8:28:29 AM8/18/14
to rust-r...@googlegroups.com
Поправил перевод.

Владимир Матвеев

unread,
Aug 18, 2014, 8:30:52 AM8/18/14
to rust-r...@googlegroups.com
cycle в английском никогда не используется в смысле цикла как управляющей конструкции. См. здесь.

В таких случаях очень советую пользоваться словарями вроде мультитрана. Сравните: cycle vs loop

Egor Smolyakov

unread,
Sep 4, 2014, 11:22:58 AM9/4/14
to rust-r...@googlegroups.com
Пока несколько занят, поэтому не могу уделить время переводу. Освобожусь где-то через неделю.

Egor Smolyakov

unread,
Jan 25, 2015, 2:52:50 PM1/25/15
to rust-r...@googlegroups.com
У меня нет времени дальше заниматься проектом, поэтому, кто хочет - беритесь, хотя за это время не было ни одного добровольца форкнуть на Github и продолжить перевод, кроме Андрея Лесникова ( https://github.com/ozkriff ).
rust-by-example-master.zip
Reply all
Reply to author
Forward
0 new messages