Найти в Дзене
Rust. Срезы.
Другим типом данных, который не забирает во владение данные является срез. Давайте рассмотрим одну проблему, нам нужно создать функцию в которую мы передаем строку, а она возвращает нам первое слово, а если программа не находит пробелы, то возвращает эту же строку. fn first_word(s: &String) -> usize { let bytes = s.as_bytes(); for (i, &item) in bytes.iter().enumerate() { if item == b' ' { return i; } } s.len() } Для того чтобы найти пробел, мы превращаем s в массив байт с помощью метода as_bytes(), далее мы сравниваем каждый байт с байтом пробела, если это будет байт пробела то возвратим индекс этого пробела...
4 года назад
Rust. Циклы.
Довольно часто программисту нужно повторно выполнять какие либо действия. У rust есть несколько видов цикла, которыми он может нас удовлетворить. Rust имеет три разные циклы, это loop, while, for. цикл loop. Для создания цикла loop нужно использовать ключевое слово loop и фигурные скобки. Пример: fn main() { loop { println!("hello"); } } этот цикл бесконечно раз будет выводить hello на консоль. Цикл loop сам является бесконечным, есть два способа выйти с него, это ключевые слова break и return. Сравним этот цикл с циклом while while true { println!("hi"); } loop { println!("hi"); } цикл loop...
4 года назад
Rust. Ссылочные переменные и заимствование.
Нам приходилось перемещать s в функцию и потом обратно его принимать с длиной s используя кортеж. Но теперь мы можем это более оптимизированном виде записать, используя ссылочные переменные. fn main() { let s = String::from("hello world"); let len = get_len(&s); } fn get_len(s: &String) -> usize { s.len() } Мы в качестве аргумента отправляем ссылку на объект и также в параметрах указываем что это ссылка типа String. И возвращаем только длину объекта, так как s не передавала владение в функцию, она всё еще действительна. Вспомним как хранится в памяти s. В стеке хранится...
4 года назад
Rust. Функции. Коментарии. Выражения if-else.
Одно из главных частей rust. Мы функции встречаем всегда, точкой входа в программу является функция main. Функция объявляется с помощью ключевого слова fn. Примеры объявления функции: fn main() { hello(); } fn hello() { println!("hello"); } Функцию можно вызвать где угодно. Rust не волнует где в каком месте определенна функция. Функция состоит из ключевого слова fn имени скобок и фигурных скобок. Параметры функции Функция может быть объявлена с параметрами, это специальные переменные. Пример fn main() { print(23); } fn print(n: i32) { println!("{}", n); } То что мы передаем в функцию это называется аргументом, а то что мы принимаем это параметр...
4 года назад
Rust. Синтаксис. Типы данных.
У rust синтаксис похож с языком программирования как c++. У rust также как и с++ точкой входа в программу является функция main. Она всегда вызывается автоматически первым. синтаксис: fn main() { } {} внутри фигурных скобок область видимости функции. Чтобы вывести что либо на консоль нужно использовать макрос println!("Hello world");. Если в конце какого либо названия есть восклицательный знак, то это макрос. В макрос передается аргумент, который макросы выведет. И в конце команды должна быть точка с запятой. Чтобы вывести какую любо переменную нужно первым аргументом отправить "{}" а дальше через...
4 года назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала