Преобразование строк в целые числа — обычная задача в программировании, и Rust предоставляет несколько методов для достижения этой цели. В этой статье блога мы рассмотрим различные подходы к анализу целого числа из строки с помощью Rust. Мы углубимся в примеры кода и объясним каждый метод в разговорной форме, чтобы его было легко понять и реализовать как начинающим, так и опытным разработчикам. Итак, начнем!
Метод 1: parse()
Метод parse()— это простой способ преобразования строки в целое число в Rust. Он использует встроенные возможности анализа Rust, позволяя преобразовывать строки, представляющие допустимые целые числа, в соответствующие числовые значения.
fn main() {
let number_str = "42";
let number: i32 = number_str.parse().unwrap();
println!("Parsed integer: {}", number);
}
Метод 2: from_str()
Метод from_str()является альтернативой parse(). Он работает аналогично, но обеспечивает большую гибкость, позволяя указать тип целого числа, которое вы хотите проанализировать.
fn main() {
use std::str::FromStr;
let number_str = "42";
let number = i32::from_str(number_str).unwrap();
println!("Parsed integer: {}", number);
}
Метод 3: atoi() из крейта atoi
Функция atoi()из крейта atoiпредоставляет другой способ анализа целых чисел из строк в Rust. Этот метод может обрабатывать более сложные сценарии, такие как анализ целых чисел с начальными и конечными пробелами.
Сначала добавьте ящик atoiв файл Cargo.toml:
[dependencies]
atoi = "0.4.3"
Затем вы можете использовать функцию atoi()следующим образом:
fn main() {
use atoi::atoi;
let number_str = "42";
let number = atoi::<i32>(number_str).unwrap();
println!("Parsed integer: {}", number);
}
Метод 4: вариант match и Ok()
Если вы предпочитаете более явный подход, вы можете использовать сопоставление с образцом с вариантом Ok()для явной обработки преобразования.
fn main() {
let number_str = "42";
let number = match number_str.parse::<i32>() {
Ok(parsed_num) => parsed_num,
Err(_) => {
println!("Failed to parse integer!");
return;
}
};
println!("Parsed integer: {}", number);
}