Rust на примерах - это набор исполняемых примеров, которые иллюстрируют различные концепции языка Rust, а так же возможности его стандартной библиотеки. Для того, чтобы подчеркнуть ещё больше из этих примеров, не забудьте установить Rust на своём компьютере и проверить официальную документацию. Если вы ранее не сталкивались с языком программирования Rust, то советую вам для начала ознакомиться с русскоязычной книгой по Rust. Кроме этого можно посмотреть исходный код этого сайта или оригинала.
Итак, давайте начнём!
• Hello World - Начните с традиционной программы Hello World.
• Примитивы - Узнайте о целых числах со знаком, целых числах без знака и других примитивах.
• Пользовательские типы - struct и enum.
• Связывание переменных - изменяемые связывания, область видимости, затенение.
• Типы - Узнаете об изменении и определении типов.
• Преобразования.
• Выражения.
• Управление потоком - if/else, for, и другие.
• Функции - Узнайте о методах, замыканиях и функциях высокого порядка.
• Модули - Организация кода с помощью модулей
• Контейнеры - Пакет - это единица компиляции в Rust. Научитесь создавать библиотеку.
• Cargo - Познакомьтесь с основными функциями официального пакетного менеджера Rust.
• Атрибуты - Атрибут - это метаданные, применяемые к какому-либо модулю, пакету или элементу.
• Обобщения - Узнайте о написании функции или типа данных, которые могут работать для нескольких типов аргументов.
• Правила областей видимости - Области видимости играют важную роль во владении, заимствовании и продолжительности жизни.
• Traits - Типаж - это набор методов, определённых для неизвестного типа: Self.
• Макросы.
• Обработка ошибок - Узнаете как в Rust обрабатывать ошибки.
• Типы стандартной библиотеки - Узнайте о некоторых пользовательских типах, предоставляемых библиотекой std.
• Разное в стандартной библиотеке - Больше пользовательских типов для обработки файлов, потоков.
• Testing - Все виды тестов в Rust.
• Unsafe.
• Совместимость.
• Meta - Документация, бенчмаркинг.
Это исходный код традиционной программы "Привет, мир!".
// Эта строка — комментарий, она будет проигнорирована компилятором
// Протестировать код можно нажав на кнопку "Run",
// которая находится в правом верхнем углу,
// или же можно использовать клавиатуру, нажав сочетание клавиш "Ctrl + Enter"
// Этот код можно редактировать не стесняясь, дерзайте!
// Всегда можно вернуть оригинальный код, нажав на кнопку "Reset". Она также находится в правом верхнем углу, но левее
// Это главная функция. С неё начинается исполнение любой программы
fn main() {
// Следующий код будет исполнен в момент, когда будет запущен исполняемый файл
// Напечатаем текст в консоли
println!("Привет, мир!");
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
println! - это
Исполняемый файл может быть сгенерирован с помощью компилятора Rust — rustc.
$ rustc hello.rs
rustc создаст исполняемый файл hello, который можно будет запустить.
$ ./hello
Привет, мир!
Нажми кнопку "Run", чтобы увидеть ожидаемый результат. Затем добавь новую строку с другим макросом println!, чтобы вывод был таким:
Привет, мир!
Я программирую на языке Rust!
Каждая программа, безусловно, нуждается в комментариях и Rust предоставляет несколько способов комментирования кода:
•
• // Однострочный комментарий. Который завершается в конце строки.
• /* Блочный комментарий, который продолжается до завершающего символа. */
•
• /// Генерация документации для функции.
• //! Генерация документации для модуля.
fn main() {
// This is an example of a line comment
// There are two slashes at the beginning of the line
// And nothing written inside these will be read by the compiler
// println!("Hello, world!");
// Run it. See? Now try deleting the two slashes, and run it again.
/*
* This is another type of comment, a block comment. In general,
* line comments are the recommended comment style. But
* block comments are extremely useful for temporarily disabling
* chunks of code. /* Block comments can be /* nested, */ */
* so it takes only a few keystrokes to comment out everything
* in this main() function. /*/*/* Try it yourself! */*/*/
*/
/*
Note: The previous column of `*` was entirely for style. There's
no actual need for it.
*/
// You can manipulate expressions more easily with block comments
// than with line comments. Try deleting the comment delimiters
// to change the result:
let x = 5 + /* 90 + */ 5;
println!("Is `x` 10 or 100? x = {}", x);
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Документирование библиотек
Вывод обрабатывается несколькими макросами, которые определены в std::fmt. Вот некоторые из них:
• format!: записывает форматированный текст в String.
• print!: работает аналогично с format!, но текст выводится в консоль (io::stdout).
• println!: аналогично print!, но в конце добавляется переход на новую строку.
• eprint!: аналогично format!, но текст выводится в стандартный поток ошибок (io::stderr).
• eprintln!: аналогично eprint!, но в конце добавляется переход на новую строку.
Весь текст обрабатывается аналогичным образом. Плюс данного метода в том, что корректность форматирования будет проверена на этапе компиляции программы.
fn main() {
// `{}` автоматически будет заменено на