Разберите механизм: как сопоставление ссылочного значения с обычным структурным шаблоном влияет на тип и владение переменными, связанными в этом шаблоне?
База Hintsage
Rust Core
Типы, pattern matching, modules и базовая семантика.
Практика
Вопросы: Rust Core
В API нужно исключить случайную передачу идентификатора заказа вместо идентификатора пользователя. Скомпилируется ли вызов load(order) и почему?
type UserId = u64;
type OrderId = u64;
fn load(id: UserId) {
println!("{id}");
}
fn main() {
let order: OrderId = 42;
load(order);
}
Что делает Rust с именем переменной в шаблоне, если такое имя уже существует во внешней области видимости?
При каких условиях Rust выбирает для неаннотированного целочисленного литерала тип i32, а когда выводит другой целочисленный тип?
Объясните механизм типа !: почему расходящиеся выражения могут использоваться там, где ожидается значение другого типа?
Что произойдёт, если в операторе let Rust использовать шаблон, который может не совпасть со значением?
Как Rust определяет, перемещается ли значение при связывании с ним через шаблон?
Ситуация: функция объявлена в одном модуле без pub, а вызывается из соседнего модуля того же crate. Что произойдёт при компиляции?
К каким последствиям приводит добавление нового варианта в перечисление Rust для уже существующего сопоставления match?
Показано 41–49 из 49