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
👍256🔥4😁2👎1🥰1



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: |

Telegram has exploded as a hub for cybercriminals looking to buy, sell and share stolen data and hacking tools, new research shows, as the messaging app emerges as an alternative to the dark web.An investigation by cyber intelligence group Cyberint, together with the Financial Times, found a ballooning network of hackers sharing data leaks on the popular messaging platform, sometimes in channels with tens of thousands of subscribers, lured by its ease of use and light-touch moderation.

Among the actives, Ascendas REIT sank 0.64 percent, while CapitaLand Integrated Commercial Trust plummeted 1.42 percent, City Developments plunged 1.12 percent, Dairy Farm International tumbled 0.86 percent, DBS Group skidded 0.68 percent, Genting Singapore retreated 0.67 percent, Hongkong Land climbed 1.30 percent, Mapletree Commercial Trust lost 0.47 percent, Mapletree Logistics Trust tanked 0.95 percent, Oversea-Chinese Banking Corporation dropped 0.61 percent, SATS rose 0.24 percent, SembCorp Industries shed 0.54 percent, Singapore Airlines surrendered 0.79 percent, Singapore Exchange slid 0.30 percent, Singapore Press Holdings declined 1.03 percent, Singapore Technologies Engineering dipped 0.26 percent, SingTel advanced 0.81 percent, United Overseas Bank fell 0.39 percent, Wilmar International eased 0.24 percent, Yangzijiang Shipbuilding jumped 1.42 percent and Keppel Corp, Thai Beverage, CapitaLand and Comfort DelGro were unchanged.

Rust from de


Telegram Rust
FROM USA