Rust
رفتن به کانال در Telegram
Rust programming language По всем вопросам- @workakkk #VRHSZ
نمایش بیشتر9 136
مشترکین
-324 ساعت
+167 روز
+21530 روز
آرشیو پست ها
9 137
Rust 1.61.0: пользовательские коды возврата в main, расширение возможностей const fn и изменение IO-блокировок
https://habr.com/ru/post/666850/
9 137
Что выведет код ?
struct S;
fn main() {
let [x, y] = &mut [S, S];
let eq = x as *mut S == y as *mut S;
print!("{}", eq as u8);
}
Ответ: 1
@rust_code
9 137
Перечисления и Сопоставление с образцом
В этой статье мы рассмотрим перечисления, также называемые enums. Перечисления позволяют определять тип, перечисляя его возможные варианты. Сначала, мы определим и воспользуемся перечислением, чтобы показать, как перечисление может закодировать значение вместе с данными. Далее мы рассмотрим особенно полезный enum, называемый Option, который выражает факт того, что значение может быть либо чем-то, либо ничем. Потом мы посмотрим на сопоставление с образцом в match выражении, позволяющем легко выполнять разный код для различных значений перечисления. Наконец, мы рассмотрим конструкцию if let - ещё одну удобную и лаконичную идиому, которая позволяет вам управлять перечислениями в коде.
Перечисления являются особенностью многих языков, но в каждом языке их возможности различаются. Перечисления в Rust наиболее похожи на алгебраические типы данных, Algebraic Data Types, представленные в таких функциональных языках как F#, OCaml и Haskell.
Читать дальше
@rust_code
9 137
Используем клиентский процессор по максимуму. Часть 1: Rust + WebAssembly
https://habr.com/ru/company/ruvds/blog/662363/
9 137
Срезы
Другим типом данных, который не забирает во владение данные является срез (slice). Срез позволяет ссылаться на смежную последовательность элементов из коллекции, вместо полной коллекции.
Рассмотрим небольшую программную проблему: необходимо написать функцию, входным параметром которой является строка, а выходным значением функции является первое слово, которое будет найдено в этой строке. Если функция не находит пробелы, она возвращает полную строку.
Читать дальше
@rust_code
9 137
Ссылочные переменные и заимствование
Основная проблематика в подходе с использованием кортежа в листинге 4-5 заключается в том, что мы должны вернуть String в вызывающую функцию, чтобы мы могли использовать String после вызова функции calculate_length, потому что String была перемещена в функциюcalculate_length. Вместо этого мы можем предоставить ссылку на значение String Ссылка похожа на указатель в том смысле, что это адрес, по которому мы можем получить доступ к данным, хранящимся по этому адресу, принадлежащему какой-либо другой переменной. В отличие от указателя, ссылка гарантированно указывает на допустимое значение определённого типа. Вот как вы могли бы определить и использовать функцию calculate_length которая имеет ссылку на объект в качестве параметра вместо того, чтобы владеть значением:
Файл: src/main.rs
Читать дальше
@rust_code
9 137
Интеллектуальный брутфорс: пишем головоломку и солвер для неё
https://habr.com/ru/company/beeline/blog/663852/
