Introdução ao Rust: história, características, aplicação em Rust
Что это и зачем?
Представь, что ты строишь дом из конструктора LEGO. У тебя есть кубики, колёсики, окошки — ты можешь собрать всё что угодно. Но если ты неаккуратно соединишь детали, дом развалится. Rust — это такой конструктор, где каждый кубик щёлкает и блокируется намертво. Ты не сможешь ошибиться, потому что сам язык не даст тебе сделать неправильное соединение.
Rust придумали в компании Mozilla (той самой, что делает браузер Firefox). Программисты хотели создать язык, который будет:
- Быстрым — как гоночный автомобиль (C++).
- Безопасным — чтобы программа не падала и не давала сбоев.
- Понятным — чтобы новичок мог разобраться.
Зачем тебе это знать? Rust используют для создания игр, операционных систем, браузеров и даже ракет! Если ты хочешь писать программы, которые работают быстро и не ломаются — Rust твой выбор.
Синтаксис и примеры кода
Давай посмотрим, как выглядит код на Rust. Не пугайся — всё просто!
Пример 1: Привет, мир!
// Это комментарий — его компьютер игнорирует
fn main() {
// println! — это макрос (специальная команда) для печати текста
println!("Привет, мир!");
}
Объяснение: fn main() — это главная функция, с которой начинается любая программа. Внутри фигурных скобок {} мы пишем команды. println! выводит текст на экран. Восклицательный знак ! говорит, что это макрос — особая инструкция.
Пример 2: Переменные и числа
fn main() {
// let — создаёт переменную (по умолчанию неизменяемую)
let x = 5; // число
let y = 10; // ещё одно число
let sum = x + y; // складываем
println!("Сумма: {}", sum); // {} — подстановка значения
}
Объяснение: let создаёт переменную. Rust сам догадывается, что x — это число. {} в строке — это место, куда подставится значение sum. Попробуй изменить числа и посмотреть, что получится!
Пример 3: Ветвление (if-else)
fn main() {
let возраст = 16;
if возраст >= 18 {
println!("Ты взрослый!");
} else {
println!("Ты ещё школьник!");
}
}
Объяснение: if проверяет условие. Если возраст >= 18 — выполняется первый блок, иначе — второй. Обрати внимание: в Rust нет круглых скобок вокруг условия, только фигурные!
Пример 4: Цикл (loop)
fn main() {
let mut счетчик = 0; // mut — значит переменная будет меняться
loop {
счетчик = счетчик + 1;
println!("Счёт: {}", счетчик);
if счетчик >= 5 {
break; // выходим из цикла
}
}
}
Объяснение: loop — бесконечный цикл. mut (mutable) разрешает изменять переменную. break останавливает цикл. Программа выведет числа от 1 до 5.
Пример 5: Функция с возвратом
fn квадрат(число: i32) -> i32 { // i32 — целое число
число * число // последнее выражение — это результат
}
fn main() {
let результат = квадрат(7);
println!("7 в квадрате = {}", результат);
}
Объяснение: Мы создали функцию квадрат, которая принимает число и возвращает его квадрат. -> i32 говорит, что функция вернёт целое число. В Rust не нужно писать return — последнее выражение автоматически становится результатом.
Сравнение с Python
Python — это как велосипед: сел и поехал. Rust — как гоночный мотоцикл: нужно учиться, но быстрее и безопаснее. Сравним:
| Идея | Python | Rust |
|---|---|---|
| Привет, мир! | print("Привет!") |
println!("Привет!"); |
| Переменная | x = 5 |
let x = 5; |
| Изменение переменной | x = 10 (можно всегда) |
let mut x = 5; x = 10; (нужно разрешение) |
| Функция | def square(n): return n*n |
fn square(n: i32) -> i32 { n*n } |
| Цикл | for i in range(5): print(i) |
for i in 0..5 { println!("{}", i); } |
Главное отличие: В Python ты можешь случайно изменить переменную, которая не должна меняться. В Rust это невозможно — язык заставляет тебя явно указывать, что можно менять (mut). Это как подпись: "Я точно хочу это изменить!".
Типичные ошибки новичков
- Забыл точку с запятой — в Rust почти каждая строка заканчивается
;. Забыл? Компилятор скажет: "Эй, ты забыл точку с запятой!". - Пытаешься изменить неизменяемую переменную — если написал
let x = 5;, а потомx = 10;, Rust выдаст ошибку. Нужно писатьlet mut x = 5;. - Путаешь = и == —
=это присваивание (положить значение),==это сравнение (проверить, равны ли). В условии if нужно==. - Не используешь фигурные скобки — в Rust блоки кода всегда в
{}. Даже если одна строка — ставь скобки! - Забываешь про типы — Rust строгий: если функция обещает вернуть
i32, она не может вернуть текст. Указывай типы явно.
Итог
Rust — это язык для тех, кто хочет писать серьёзные программы без страха, что они упадут. Он учит тебя думать наперёд: "А что будет, если я изменю эту переменную? А если передам не то значение?".
Сначала может быть сложно — много новых правил, строгий компилятор. Но как только привыкнешь, ты поймёшь: Rust твой друг, который не даёт тебе совершать глупые ошибки.
Попробуй написать свою первую программу на Rust — хотя бы "Привет, мир!". Установи компилятор (rustup.rs) и экспериментируй. Помни: каждая ошибка — это шаг к тому, чтобы стать настоящим программистом!