🦀 Rust

Einführung in Rust: Geschichte, Besonderheiten, Anwendung in 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). Это как подпись: "Я точно хочу это изменить!".

Типичные ошибки новичков

  1. Забыл точку с запятой — в Rust почти каждая строка заканчивается ;. Забыл? Компилятор скажет: "Эй, ты забыл точку с запятой!".
  2. Пытаешься изменить неизменяемую переменную — если написал let x = 5;, а потом x = 10;, Rust выдаст ошибку. Нужно писать let mut x = 5;.
  3. Путаешь = и == — = это присваивание (положить значение), == это сравнение (проверить, равны ли). В условии if нужно ==.
  4. Не используешь фигурные скобки — в Rust блоки кода всегда в {}. Даже если одна строка — ставь скобки!
  5. Забываешь про типы — Rust строгий: если функция обещает вернуть i32, она не может вернуть текст. Указывай типы явно.

Итог

Rust — это язык для тех, кто хочет писать серьёзные программы без страха, что они упадут. Он учит тебя думать наперёд: "А что будет, если я изменю эту переменную? А если передам не то значение?".

Сначала может быть сложно — много новых правил, строгий компилятор. Но как только привыкнешь, ты поймёшь: Rust твой друг, который не даёт тебе совершать глупые ошибки.

Попробуй написать свою первую программу на Rust — хотя бы "Привет, мир!". Установи компилятор (rustup.rs) и экспериментируй. Помни: каждая ошибка — это шаг к тому, чтобы стать настоящим программистом!