Пара на выходе из функции в Rust
Давайте теперь будем отдавать из функции сразу два числа. Два значения можно вернуть одним кортежем. Тип результата пишут как пару типов в круглых скобках после стрелки.
Вернем частное и остаток от деления:
fn func(a: i32, b: i32) -> (i32, i32) {
(a / b, a % b)
}
fn main() {
let pair = func(7, 3);
println!("{} {}", pair.0, pair.1);
}
На экране 2 и 1. К полям обращаются через точку и
номер.
Кортеж можно сразу разложить в две переменные:
fn func(a: i32, b: i32) -> (i32, i32) {
if a < b {
(a, b)
} else {
(b, a)
}
}
fn main() {
let (lo, hi) = func(5, 2);
println!("{} {}", lo, hi);
}
Даны числа:
let x = 10;
let y = 3;
Напишите блок, который отдает сумму и разность x и y
кортежем, и выведите оба поля.
Дан следующий код:
fn main() {
let both = func(4);
println!("{}", both.0);
}
Допишите func с результатом (i32, i32): число
и его удвоение.
Скажите, как записывают тип пары на выходе после стрелки.