Выражение if
Выражение if работает так же, как и оператор if в других языках:
// Copyright 2024 Google LLC
// SPDX-License-Identifier: Apache-2.0
fn main() {
let x = 10;
if x == 0 {
println!("zero!");
} else if x < 100 {
println!("biggish");
} else {
println!("huge");
}
}
Помимо этого, можно использовать if как выражение. Последнее выражение внутри одного из блоков (в зависимости от значения условия) становится значением всего выражения if:
// Copyright 2024 Google LLC
// SPDX-License-Identifier: Apache-2.0
fn main() {
let x = 10;
let size = if x < 20 { "small" } else { "large" };
println!("number size: {}", size);
}
Поскольку if — это выражение, которое должно иметь определённый тип, оба его блока-ветки должны иметь одинаковый тип. Покажите, что произойдёт, если добавить ; после "small" во втором примере.
Выражение if используется так же, как и другие выражения. Например, если оно стоит в операторе let, то и оператор должен заканчиваться ;. Уберите ; перед println!, чтобы увидеть ошибку компилятора.