ЛитВек: бестселлеры недели
Бестселлер - Евгений Германович Водолазкин - Лавр - читать в ЛитвекБестселлер - Келли Макгонигал - Сила воли. Как развить и укрепить - читать в ЛитвекБестселлер - Мичио Каку - Физика невозможного - читать в ЛитвекБестселлер - Джеймс С. А. Кори - Пробуждение Левиафана - читать в ЛитвекБестселлер - Александра Черчень - Счастливый брак по-драконьи. Поймать пламя - читать в ЛитвекБестселлер - Александр Анатольевич Ширвиндт - Проходные дворы биографии - читать в ЛитвекБестселлер - Брайан Трейси - Выйди из зоны комфорта. Измени свою жизнь. 21 метод повышения личной эффективности - читать в ЛитвекБестселлер - Влада Ольховская - Нецарская охота - читать в Литвек
Литвек - электронная библиотека >> Коллектив авторов >> Учебники и самоучители по компьютеру и др. >> Rust на примерах

Rust на примерах

Rust на примерах. Иллюстрация № 1 Rust - современный язык программирования, нацеленный на безопасность, скорость и параллелизм. Данные цели выполняются при условии безопасной работы с памятью без использования сборщика мусора.

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 предоставляет несколько способов комментирования кода:

   • Обычные комментарии, которые игнорируются компилятором:

      • // Однострочный комментарий. Который завершается в конце строки.

      • /* Блочный комментарий, который продолжается до завершающего символа. */

   • Doc комментарии, которые будут сгенерированы в HTML документацию:

      • /// Генерация документации для функции.

      • //! Генерация документации для модуля.

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() {

// `{}` автоматически будет заменено на

// аргументы. Они будут преобразованы в строку.

println!("{} дней", 31);

// Без суффиксов, 31 является i32. Можно изменить тип 31,

// используя суффикс.

// Существует множество способов работы с форматированным выводом.