Всем привет! Сегодня проснулся и понял.... хочу попробовать изучить 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.
После изучения материала закрепил знания выполнив предложенные задания.
Приложу только код первого задания, что бы не спойлерить решение идущим тем же путем.