При перекрывающихся ветвях match какая ветвь выбирается и что происходит с последующими?
База Hintsage
Rust Core
Типы, pattern matching, modules и базовая семантика.
Практика
Вопросы: Rust Core
При вызове функции, ожидающей ссылку на срез строки, Rust принимает ссылку на String без явного преобразования. Какой механизм это обеспечивает?
На границе Rust-кода отрицательное знаковое целое преобразуют в беззнаковое через as: какое значение получится и почему?
В сборочной конфигурации изменился режим с отладочного на релизный: как это влияет на переполнение знакового целого при обычной арифметике Rust?
В практической ситуации модуль переместили глубже в иерархии: как выбор между путями crate:: и super:: влияет на устойчивость ссылок на элементы?
Рассмотрите различие между размером значения и размером данных, на которые оно ссылается. Почему этот код допускает &str, но не допускает локальную переменную типа str?
fn length(s: &str) -> usize {
s.len()
}
fn main() {
let text = String::from("Rust");
let view: &str = &text;
println!("{}", length(view));
// let invalid: str = *"Rust";
}
Сравните представление опциональной ссылки и обычной ссылки в памяти: за счёт какого механизма они могут иметь одинаковый размер?
Как Rust различает const и static при требовании единственного адреса хранения глобального значения?
Какое правило Rust применяет к именам, связанным в альтернативных ветвях or-pattern?
Как Rust определяет тип выражения if, если его ветви имеют разные типы?
Чем затенение имени отличается от присваивания существующей переменной в Rust?
Зачем модулю Rust нужен модификатор pub(crate), если pub уже делает элемент доступным?
Объясните механизм: почему impl Trait в возвращаемом типе функции означает один конкретный тип для всех успешных возвратов, а не «любой тип, реализующий trait»?
Функция возвращает ссылку на значение, созданное внутри неё: каким образом Rust доказывает, что такой результат небезопасен?
Представьте модуль, где тип и функция имеют одинаковое имя: как Rust определяет, какое имя искать в конкретном месте?
В чём состоит семантическая разница между выражением с точкой с запятой и тем же выражением без неё в Rust?
При разборе шаблона с @ как Rust одновременно сохраняет всё сопоставленное значение и связывает его внутреннюю часть?
Какое правило приватности Rust определяет доступ дочернего модуля к приватному элементу родителя?
Разбор последствий: почему ветвь match с дополнительным условием не считается Rust полностью покрывающей соответствующий шаблон?
Сравните use и pub use: какой из них меняет публичный API модуля?
Показано 21–40 из 49