СПРАВОЧНИК
Стандартная библиотека Rust
Vec, String, Option, Result, Iterator
Алфавитный справочник по самым востребованным типам и методам стандартной библиотеки Rust: динамический массив Vec<T>, строки String и &str, контейнеры ошибок Option<T> и Result<T, E>, ленивые итераторы и хэш-таблица HashMap. Каждая запись содержит сигнатуру, краткое объяснение и рабочий пример с комментарием-результатом.
Прочее 6
Clone::clone()
fn clone(&self) -> SelfСоздаёт глубокую копию значения.#[derive(...)]
#[derive(Debug, Clone, PartialEq)]Автоматически реализует трейты для типа.print!
macro print!($fmt, $args...)Печатает текст в stdout без перевода строки.println!
macro println!($fmt, $args...)Печатает текст в stdout с переводом строки.vec!
macro vec![$($elem),*] -> Vec<T>Создаёт вектор с начальными элементами.Диапазон (1..5)
start..end // и start..=endСоздаёт диапазон чисел для итерации.HashMap 9
HashMap::contains_key()
fn contains_key(&self, k: &Q) -> boolПроверяет наличие ключа.HashMap::entry()
fn entry(&mut self, key: K) -> Entry<'_, K, V>Доступ к ячейке для вставки или изменения.HashMap::get()
fn get(&self, k: &Q) -> Option<&V>Возвращает значение по ключу.HashMap::insert()
fn insert(&mut self, k: K, v: V) -> Option<V>Добавляет или обновляет пару ключ-значение.HashMap::iter()
fn iter(&self) -> Iter<'_, K, V>Возвращает итератор по парам ключ-значение.HashMap::keys()
fn keys(&self) -> Keys<'_, K, V>Возвращает итератор по ключам.HashMap::new()
fn new() -> HashMap<K, V>Создаёт пустую хэш-таблицу.HashMap::remove()
fn remove(&mut self, k: &Q) -> Option<V>Удаляет ключ и возвращает его значение.HashMap::values()
fn values(&self) -> Values<'_, K, V>Возвращает итератор по значениям.Iterator 19
Iterator::all()
fn all<F: FnMut(Self::Item) -> bool>(&mut self, f: F) -> boolПроверяет, удовлетворяют ли условию все элементы.Iterator::any()
fn any<F: FnMut(Self::Item) -> bool>(&mut self, f: F) -> boolПроверяет, удовлетворяет ли условию хотя бы один элемент.Iterator::chain()
fn chain<U: IntoIterator>(self, other: U) -> Chain<Self, U::IntoIter>Соединяет два итератора последовательно.Iterator::collect()
fn collect<B: FromIterator<Self::Item>>(self) -> BСобирает итератор в коллекцию.Iterator::count()
fn count(self) -> usizeСчитает количество элементов в итераторе.Iterator::enumerate()
fn enumerate(self) -> Enumerate<Self>Добавляет к каждому элементу его индекс.Iterator::filter()
fn filter<P: FnMut(&Self::Item) -> bool>(self, p: P) -> Filter<Self, P>Оставляет только элементы, проходящие условие.Iterator::find()
fn find<P: FnMut(&Self::Item) -> bool>(&mut self, p: P) -> Option<Self::Item>Находит первый элемент, удовлетворяющий условию.Iterator::flat_map()
fn flat_map<U: IntoIterator, F: FnMut(Self::Item) -> U>(self, f: F) -> FlatMap<...>Map с последующим разглаживанием вложенных итераторов.Iterator::fold()
fn fold<B, F: FnMut(B, Self::Item) -> B>(self, init: B, f: F) -> BСворачивает итератор в одно значение с аккумулятором.Iterator::iter()
fn iter(&self) -> Iter<'_, T>Создаёт итератор по ссылкам на элементы коллекции.Iterator::map()
fn map<B, F: FnMut(Self::Item) -> B>(self, f: F) -> Map<Self, F>Преобразует каждый элемент итератора.Iterator::max()
fn max(self) -> Option<Self::Item>Находит максимальный элемент.Iterator::min()
fn min(self) -> Option<Self::Item>Находит минимальный элемент.Iterator::rev()
fn rev(self) -> Rev<Self>Обходит итератор в обратном порядке.Iterator::skip()
fn skip(self, n: usize) -> Skip<Self>Пропускает первые n элементов.Iterator::sum()
fn sum<S: Sum<Self::Item>>(self) -> SСчитает сумму всех элементов.Iterator::take()
fn take(self, n: usize) -> Take<Self>Берёт первые n элементов.Iterator::zip()
fn zip<U: IntoIterator>(self, other: U) -> Zip<Self, U::IntoIter>Сшивает два итератора в пары.Option 9
match для Option
match opt { Some(x) => ..., None => ... }Разбор обоих вариантов Option через match.Option::and_then()
fn and_then<U, F: FnOnce(T) -> Option<U>>(self, f: F) -> Option<U>Цепочка операций, возвращающих Option.Option::expect()
fn expect(self, msg: &str) -> TИзвлекает значение или паникует с заданным сообщением.Option::is_none()
fn is_none(&self) -> boolПроверяет отсутствие значения (вариант None).Option::is_some()
fn is_some(&self) -> boolПроверяет, что значение есть (вариант Some).Option::map()
fn map<U, F: FnOnce(T) -> U>(self, f: F) -> Option<U>Преобразует значение внутри Some, не трогая None.Option::unwrap()
fn unwrap(self) -> TИзвлекает значение или паникует на None.Option::unwrap_or()
fn unwrap_or(self, default: T) -> TИзвлекает значение или возвращает значение по умолчанию.Оператор ? (Option)
expr? // в функции -> Option<_>Ранний выход с None при пустом значении.Result 8
Result::expect()
fn expect(self, msg: &str) -> TИзвлекает Ok-значение или паникует с заданным сообщением.Result::is_err()
fn is_err(&self) -> boolПроверяет ошибочный результат (вариант Err).Result::is_ok()
fn is_ok(&self) -> boolПроверяет успешный результат (вариант Ok).Result::map()
fn map<U, F: FnOnce(T) -> U>(self, f: F) -> Result<U, E>Преобразует Ok-значение, не трогая Err.Result::map_err()
fn map_err<O, F: FnOnce(E) -> O>(self, f: F) -> Result<T, O>Преобразует тип ошибки внутри Err.Result::unwrap()
fn unwrap(self) -> TИзвлекает Ok-значение или паникует на ошибке.Result::unwrap_or()
fn unwrap_or(self, default: T) -> TИзвлекает Ok-значение или возвращает значение по умолчанию.Оператор ? (Result)
expr? // в функции -> Result<_, E>Ранний выход с Err при ошибке.String / str 17
format!
macro format!($fmt, $args...) -> StringСобирает форматированную строку без вывода.str::chars()
fn chars(&self) -> Chars<'_>Возвращает итератор по символам Unicode.str::contains()
fn contains<P: Pattern>(&self, pat: P) -> boolПроверяет вхождение подстроки или символа.str::ends_with()
fn ends_with<P: Pattern>(&self, pat: P) -> boolПроверяет, заканчивается ли строка шаблоном.String::new()
fn new() -> StringСоздаёт новую пустую строку.String::push()
fn push(&mut self, ch: char)Дописывает один символ в конец строки.String::push_str()
fn push_str(&mut self, string: &str)Дописывает строковый срез в конец строки.str::is_empty()
fn is_empty(&self) -> boolПроверяет, пуста ли строка.str::len()
fn len(&self) -> usizeВозвращает длину строки в байтах.str::parse()
fn parse<F: FromStr>(&self) -> Result<F, F::Err>Парсит строку в значение указанного типа.str::replace()
fn replace<P: Pattern>(&self, from: P, to: &str) -> StringЗаменяет все вхождения подстроки и возвращает новую строку.str::split()
fn split<P: Pattern>(&self, pat: P) -> Split<'_, P>Разбивает строку по разделителю на итератор срезов.str::starts_with()
fn starts_with<P: Pattern>(&self, pat: P) -> boolПроверяет, начинается ли строка с шаблона.str::to_lowercase()
fn to_lowercase(&self) -> StringВозвращает строку в нижнем регистре.str::to_uppercase()
fn to_uppercase(&self) -> StringВозвращает строку в верхнем регистре.str::trim()
fn trim(&self) -> &strУбирает пробельные символы по краям строки.ToString::to_string()
fn to_string(&self) -> StringПреобразует значение в String.Vec 16
Vec::contains()
fn contains(&self, x: &T) -> boolПроверяет наличие значения в векторе.Vec::dedup()
fn dedup(&mut self)Удаляет идущие подряд дубликаты.Vec::extend()
fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I)Добавляет в вектор все элементы итератора.Vec::get()
fn get(&self, index: usize) -> Option<&T>Безопасный доступ к элементу по индексу.Vec::insert()
fn insert(&mut self, index: usize, element: T)Вставляет элемент по указанному индексу.Vec::is_empty()
fn is_empty(&self) -> boolПроверяет, пуст ли вектор.Vec::iter()
fn iter(&self) -> Iter<'_, T>Возвращает итератор по ссылкам на элементы.Vec::len()
fn len(&self) -> usizeВозвращает количество элементов в векторе.Vec::new()
fn new() -> Vec<T>Создаёт новый пустой вектор без выделения памяти.Vec::pop()
fn pop(&mut self) -> Option<T>Удаляет и возвращает последний элемент.Vec::push()
fn push(&mut self, value: T)Добавляет элемент в конец вектора.Vec::remove()
fn remove(&mut self, index: usize) -> TУдаляет и возвращает элемент по индексу.Vec::retain()
fn retain<F: FnMut(&T) -> bool>(&mut self, f: F)Оставляет только элементы, удовлетворяющие условию.Vec::reverse()
fn reverse(&mut self)Переворачивает порядок элементов на месте.Vec::sort()
fn sort(&mut self)Сортирует вектор по возрастанию на месте.Vec::with_capacity()
fn with_capacity(capacity: usize) -> Vec<T>Создаёт вектор с заранее выделенной ёмкостью.