Найти в Дзене
Заметкин

Дневник изучения Rust. День 1

Логотип языка программирования "rust" - https://www.rust-lang.org/
Логотип языка программирования "rust" - https://www.rust-lang.org/

День 2

Всем привет! Сегодня проснулся и понял.... хочу попробовать изучить rust language. Почему rust? Да все просто, python и javascript немного знаю, решил что хочу добавить в коллекцию компилируемый язык программирования.

Скорее всего вы скажете, да go изучи, не прогадаешь! И вы будете правы. Но Go сейчас только ленивый не тыкал, а rust не такой популярный, возможно всеобщая любовь пойдет когда ядро линукс начнут на rust расширять, а все к тому и движется.

А какая цель этого дневника? Цель изучить язык программирования, на уровне достаточном для написания консольных утилит, десктопных и веб приложений. Ощутить так сказать на свой шкуре всю прелесть и боль программирования на данном языке.

Так же, если я дойду до назначенных целей, то скорее всего могу сказать, что мой уровень владения языком rust уверенный junior (или мидл? 😊), что может вдохновить других людей, читая дневник и видя все шаги, пройти по данному пути и получить тот же результат.

О, тут напрашивается слоган "Изучи Rust без регистрации и смс! БЕСПЛАТНО!". 🎇😅

Дополнительная цель данного дневника, научится понятно излагать свои мысли.

Если вам интересно, подписывайтесь, пишите комментарии если вы тоже начали изучать данный язык, ну или уже знаете его и можете поделиться своим мнением или полезными ссылками. 👍

Да и чуть не забыл, за сегодняшний день и за следующие я не буду полностью и подробно описывать полученные знания. Для этого буду делиться ссылками на ресурсы для изучения.

И так ... начнем! Вдохновленный и полный сил сегодня начал первый день изучения Rust language. Изучение решил начать с официальной свободной книги на родном языке https://doc.rust-lang.ru/book/title-page.html

Что успел за сегодня?

1. Установил на rust на Fedora
2. Прочитал три первых главы, а так же обязательно воспроизвел все предоставленные примеры кода.

Про установку писать нечего, на странице про устновку дана одна команда, вроде все просто.

А вот прочитав 3 главы узнал что:

За работу со сборкой проекта отвечает утилита cargo. Использовал следующий функционал:

  • cargo new project_name - команда для создания базового шаблона проекта. инициализируется git, создается конфиг (манифест) необходимый cargo для сборки данного проекта, появляется папка src с файлом main.rs.
  • cargo build - для сборки проекта
  • cargo run - для сборки и запуска проекта
  • cargo check - для проверки что код рабочий, сборка и запуск проекта не производится.

Все переменные в Rust по умолчанию не изменяемые объявляются с помощью ключевого слова let, если при объявлении переменной добавить ключевое слово mut (пример: let mut x = "a"), то изменение становится возможным. Константы неизменяемые совсем! Объявляются с помощью ключевого слова const, наименование константы пишется прописными буквами. Стиль написания кода snake case.

На данном этапе узнал про следующие типы данных в языке rust:

Скалярные

  • целые числа
  • числа с плавающей точкой
  • логический
  • символы

Обращаю внимание, что в отличии от python, rust типизированный язык программирования и поэтому нужно указывать не только тип, но и разрядность. При объявлении переменных указывать тип не обязательно, компилятор сам может разобраться.

Составные

  • Кортеж - может содержать значения различных типов. После создания, не изменяем. Доступ к значению через точку (пример: tuple.0 получить первый эл. кортежа)
  • Массив - содержит только значения одного типа. Не изменяем. Доступ к значению через индексацию (пример: array[0] получить первый эл. массива)

Функции объявляются через ключевое слово fn, в параметрах типы указывать обязательно. Что бы вернуть значение из функции писать return не обязательно.

Управляющие конструкции пишутся через if ... else if ... else. Однострочная запись выглядит так: if true { 5 } else { 6 };

Доступные циклы: loop, while, for.

После изучения материала закрепил знания выполнив предложенные задания.

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

мое решение задания "Конвертация температур"
мое решение задания "Конвертация температур"