У меня есть этот фрагмент кода, в котором я пытаюсь преобразовать аргументы командной строки в целые числа. Проблема в том, что переменные width и height действительно должны быть неизменными, так как я не планирую их менять. Есть ли способ использовать сопоставление типа let width = {match....}
и инициализировать их за один шаг как неизменяемые переменные вместо того, чтобы давать им значение по умолчанию и изменять их? Я считаю, что так будет безопаснее и эффективнее.
let args: Vec<String> = env::args().collect();
let width_arg = &args[1];
let height_arg = &args[2];
let mut width = 0;
let mut height = 0;
match width_arg.parse::<i32>() {
Ok(w) => width = w,
Err(_) => ask_for_number(),
}
match height_arg.parse::<i32>() {
Ok(h) => height = h,
Err(_) => ask_for_number(),
}