Telegram Group & Telegram Channel
Шпаргалка по Rust

Основные понятия

- Переменные и типы данных:
- По умолчанию переменные являются неизменяемыми. Для создания изменяемой переменной используйте mut.

let mut x = 5; // изменяемая переменная
x = 10; // корректно

- Основные типы данных:
- Целые числа: i32, u32, i64, u64, isize, usize.
- Числа с плавающей точкой: f32, f64.
- Логический тип: bool.
- Символ: char.
- Строки: String (изменяемая) и &str (неизменяемая).

- Функции:
- Определение функции:

fn имя_функции(параметры: Тип) -> Тип {
// тело функции
}

- Пример функции:

fn add(x: i32, y: i32) -> i32 {
x + y
}


- Управляющие конструкции:
- Условия:

if условие {
// код
} else if условие {
// код
} else {
// код
}

- Циклы:
- Цикл `loop`:

loop {
// бесконечный цикл
}

- Цикл `for`:

for элемент in коллекция {
// код
}

- Цикл `while`:

while условие {
// код
}


Структуры и перечисления

- Структуры:

struct ИмяСтруктуры {
поле1: Тип,
поле2: Тип,
}

Пример:

struct Point {
x: i32,
y: i32,
}


- Перечисления:

enum ИмяПеречисления {
Вариант1,
Вариант2,
}

Пример:

enum Direction {
Up,
Down,
Left,
Right,
}


Введение в владение и заимствование

- Владение: Каждый ресурс в Rust имеет единственного владельца.
- Заимствование:
- Неизменяемое заимствование:

let s = String::from("Hello");
let r = &s; // r — неизменяемая ссылка на s

- Изменяемое заимствование:

let mut s = String::from("Hello");
let r = &mut s; // r — изменяемая ссылка на s


Обработка ошибок

- Результат:

enum Result<T, E> {
Ok(T),
Err(E),
}

Пример функции с обработкой ошибок:

fn divide(x: i32, y: i32) -> Result<i32, String> {
if y == 0 {
Err(String::from("Деление на ноль"))
} else {
Ok(x / y)
}
}


- Паника:
- Используйте panic!() для критических ошибок, которые нельзя обработать.

Обобщения

- Обобщенные типы позволяют писать более универсальный код:

fn print_vector<T: std::fmt::Debug>(vec: Vec<T>) {
println!("{:?}", vec);
}


Работа с модулями

- Создание модуля:

mod имя_модуля {
pub fn функция() {
// код
}
}


- Импорт модуля:

use имя_модуля::функция;


Стандартные библиотеки

- Работа с коллекциями:
- Векторы:

let mut vec = Vec::new();
vec.push(1);
vec.push(2);


- Хэш-таблицы:

use std::collections::HashMap;

let mut map = HashMap::new();
map.insert("ключ", "значение");


Полезные команды

- Компиляция и выполнение:

cargo build # Компиляция проекта
cargo run # Запуск проекта


- Запуск тестов:

cargo test



👉 @rust_lib



tg-me.com/rust_lib/171
Create:
Last Update:

Шпаргалка по Rust

Основные понятия

- Переменные и типы данных:
- По умолчанию переменные являются неизменяемыми. Для создания изменяемой переменной используйте mut.


let mut x = 5; // изменяемая переменная
x = 10; // корректно

- Основные типы данных:
- Целые числа: i32, u32, i64, u64, isize, usize.
- Числа с плавающей точкой: f32, f64.
- Логический тип: bool.
- Символ: char.
- Строки: String (изменяемая) и &str (неизменяемая).

- Функции:
- Определение функции:

fn имя_функции(параметры: Тип) -> Тип {
// тело функции
}

- Пример функции:

fn add(x: i32, y: i32) -> i32 {
x + y
}


- Управляющие конструкции:
- Условия:

if условие {
// код
} else if условие {
// код
} else {
// код
}

- Циклы:
- Цикл `loop`:

loop {
// бесконечный цикл
}

- Цикл `for`:

for элемент in коллекция {
// код
}

- Цикл `while`:

while условие {
// код
}


Структуры и перечисления

- Структуры:

struct ИмяСтруктуры {
поле1: Тип,
поле2: Тип,
}

Пример:

struct Point {
x: i32,
y: i32,
}


- Перечисления:

enum ИмяПеречисления {
Вариант1,
Вариант2,
}

Пример:

enum Direction {
Up,
Down,
Left,
Right,
}


Введение в владение и заимствование

- Владение: Каждый ресурс в Rust имеет единственного владельца.
- Заимствование:
- Неизменяемое заимствование:

let s = String::from("Hello");
let r = &s; // r — неизменяемая ссылка на s

- Изменяемое заимствование:

let mut s = String::from("Hello");
let r = &mut s; // r — изменяемая ссылка на s


Обработка ошибок

- Результат:

enum Result<T, E> {
Ok(T),
Err(E),
}

Пример функции с обработкой ошибок:

fn divide(x: i32, y: i32) -> Result<i32, String> {
if y == 0 {
Err(String::from("Деление на ноль"))
} else {
Ok(x / y)
}
}


- Паника:
- Используйте panic!() для критических ошибок, которые нельзя обработать.

Обобщения

- Обобщенные типы позволяют писать более универсальный код:

fn print_vector<T: std::fmt::Debug>(vec: Vec<T>) {
println!("{:?}", vec);
}


Работа с модулями

- Создание модуля:

mod имя_модуля {
pub fn функция() {
// код
}
}


- Импорт модуля:

use имя_модуля::функция;


Стандартные библиотеки

- Работа с коллекциями:
- Векторы:

let mut vec = Vec::new();
vec.push(1);
vec.push(2);


- Хэш-таблицы:

use std::collections::HashMap;

let mut map = HashMap::new();
map.insert("ключ", "значение");


Полезные команды

- Компиляция и выполнение:

cargo build # Компиляция проекта
cargo run # Запуск проекта


- Запуск тестов:

cargo test



👉 @rust_lib

BY Rust


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/rust_lib/171

View MORE
Open in Telegram


Rust Telegram | DID YOU KNOW?

Date: |

The seemingly negative pandemic effects and resource/product shortages are encouraging and allowing organizations to innovate and change.The news of cash-rich organizations getting ready for the post-Covid growth economy is a sign of more than capital spending plans. Cash provides a cushion for risk-taking and a tool for growth.

The global forecast for the Asian markets is murky following recent volatility, with crude oil prices providing support in what has been an otherwise tough month. The European markets were down and the U.S. bourses were mixed and flat and the Asian markets figure to split the difference.The TSE finished modestly lower on Friday following losses from the financial shares and property stocks.For the day, the index sank 15.09 points or 0.49 percent to finish at 3,061.35 after trading between 3,057.84 and 3,089.78. Volume was 1.39 billion shares worth 1.30 billion Singapore dollars. There were 285 decliners and 184 gainers.

Rust from ca


Telegram Rust
FROM USA