Язык Rust #1 | Настройка, обзор, переменные, типы данных, программа конвертации температур

preview_player
Показать описание
Итак, предлагаю вашему вниманию серию уроков по языку Rust (aka самоучитель Rust). Это первый урок, в котором мы обсудим некоторые особенности языка, подготовим рабочую среду, обсудим переменные, основные типы данных и напишем первую программу для конвертации температур.

Таймкоды:
00:00 Введение
01:00 Почему Rust?
03:45 Установка
05:50 Редактор и плагины
06:40 Создание и обзор проекта
09:00 Переменные
11:15 Неизменяемость
13:30 Статическая типизация
14:40 Константы
15:15 Тип integer
22:40 Тип float
23:36 Тип bool
24:05 Тип char
25:05 Тип tuple
26:35 Тип array
28:30 Практика: программа конвертации температур
41:25 Проверка работы
42:00 Заключение

Аккаунт Ethereum (ETH), Arbitrum, Polygon, BNB, USDT, TRX, BUSD: 0x719C2d2bcC155c85190f20E1Cc3710F90FAFDa16

Рекомендации по теме
Комментарии
Автор

Возможно я неправильно вас понял, но нет отдельного бита под знак в знаковых целочисленных типах, вместо этого используется "дополнительный код". Именно поэтому диапазоны такие от -2^(n-1) до 2^(n -1) -1. Если бы был отдельный бит под знак, то диапазоны были бы от -2^(n-1) +1 до 2^(n - 1) -1, а у нуля было 2 представления, отрицательный и положительный. Ну и операции проводить над таким типом было бы сложенее, как кажется

Vojan-Najov
Автор

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

STwegas
Автор

Лучи добра и поддержки) Наконец-то rust. И как всегда, плотность что надо. Так держать!

limonred
Автор

Потрясающие уроки! Спасибо! Начал погружаться в блокчейн через солану и понял, что без базового Rust Смарты писать не выйдет )

aksenovkirill
Автор

Приятный голос. Спокойный темп. Крутой язык Rust. Большое вам спасибо!

artemdubinin
Автор

Офигенный курс! Спасибо автору за чёткую понятную концентрированную информацию без воды)

НикитаМ-ьд
Автор

Посмотрел урок. Пока очень даже прилично! Надеюсь, дальше будет только лучше.

wsxpocxeafx
Автор

expect легко может вызвать panic, например, если без ввода нажать enter.
panic будет на этапе парсинга, с ошибкой ParseIntError. Причем на уровне документации не рекомендуется использовать unwrap, expect и подобные функции, особенно если нельзя гарантировать, что не будет ошибки.

mrgor
Автор

Раст довольно сильно раздут и перехайплен, на мой взгляд. Самый любимый язык программирования это как правило тот, на котором ничего серьезного не пишут.
Если всё же попробовать применить раст в продакшне, то сразу встанет вопрос о целесообразности его использования. Да, круто что нет сборки мусора, но вместо этого у тебя появляется много ограничений из за системы владения и заимствования. Самый показательный пример, это когда тебе нужно одно значение мутировать из двух или более разных мест: борроу чеккер тебе просто не позволит это сделать. Или, скажем, попробуйте сделать структуру с ссылкой на объект внутри этой же структуры. Что-то вроде:
struct SelfRef {
vec: Vec<u8>,
slice: &'? [u8],
}

В расте даже нет возможности выразить это, поэтому для примера пришлось написать вопросик. То что в других языках вообще не является проблемой, в расте выражается через тонны костылей. И, если задуматься, а так ли это стоит того? Неужели сборка мусора действительно мешает? Чтобы это понять, как минимум нужно написать минимальный прототип проекта и протестировать его под нагрузкой. Далеко не факт, что бутылочное горлышко в производительности будет именно в сборке мусора. Зачастую узким местом будет io и база данных, или что-то совсем другое.
Но, допустим, ты уверен что тебе обязательно нужна максимальная производительность. Но, разве мало языков без сборки мусора? Как минимум есть C++, который сейчас активно развивается и добавляет многие полезные вещи, которые есть в расте. Есть Zig, у которого действительно на порядок более продвинутая система компайлтайма чем у раста. И самое главное - никаких телодвижений с чеккером

Уж если вы всё равно освоите раст: его систему владения, деструкторы (Drop), семантику перемещения, умные указатели, женерики, и поймёте по какому принципу работают те же самые лайфтаймы - поздравляю, вы уже выучили половину C++. Ну или по крайней мере уже понимаете базу и можете полноценно учить и писать на плюсах.
Так зачем останавливаться? Да, придётся контролировать времена жизни вручную, но это не так уж и сложно, как это преподносят растеры. Просто для этого нужен опыт, как и для всего. Тем более, средства автоматической проверки корректности работы с памятью в плюсах есть, и ничего не мешает их использовать.

Выбирать язык программирования стоит рационально, хорошо изучив его возможности, а не слепо поддаваться хайпу "ну раз в каких-то компаниях его используют, значит он кому-то нужен". Поймите вашу цель, что вы хотите писать или вам нужен язык просто для работы - в любом случае всегда есть куда более лучший выбор, нежели раст. Раст, безусловно, хороший эксперементальный язык и да, он найдёт для себя кучу применений. Но применения эти нужны только когда ты испробовал все остальные варианты и разумно принял решение, что тебе обязательно нужен безопасный язык без сборки мусора

nanoqsh
Автор

О боже, ДА! РАААААААААААААССТ!!!
ЛАЙК ПРЕФАЕРОМ И ПОГНАЛИ СМОТРЕТЬ!

yorishinamoku
Автор

Спаибо 🙏за урок 👍, размер шрифта отличный, всё хорошо видно. Пока что понятно:3

trypophobia
Автор

Очень хороший понятный урок, спасибо тебе!

hiyato
Автор

Как у вас работает программа с висячей }fn main на 48 строке? У меня только если ее удалить запустится. 41:10
P.S: А, я понял, это вам IDE просто предлагает новую функцию создать.

bulemy
Автор

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

SankuroSanki
Автор

поддержим канал лайколм и подпиской. Автор, расскажи где юзается язык. Сможет ли петухон прогер писать на Раст? Будешь ли делать пет проект на раст?

unicoxrtj
Автор

Привет!)
Раст подходит ведь для системного программирования..

Дайте пожалуйста совет, как с абсолютного нуля стать/освоить системное программирование?
На Ютубе нет курсов на эту тему. Дажн просто обьяснящих доходчво и бещ воды

И второй вопрос, посоветуйте... Несмотря на вопрос выше, у меня стоит выбор между растом и джава. Вопрос: с нуля стоит начать изучать раст или джаву?

Volnova_A
Автор

а откуда берется cargo, что-то я не услышал когда его установили?

sergejstreck
Автор

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

hey-rglk
Автор

Опа, как раз хотелось с растом познакомиться)

toxcozZ
Автор

"JS - за гранью добра и зла" - это LOL

axel-sheen