Чтобы преобразовать строку в целое число в Rust, вы можете использовать несколько методов. Вот некоторые из распространенных подходов:
- Использование метода
parse
. Методparse
доступен для строк, реализующих признакFromStr
. Его можно использовать для преобразования строки в целочисленный тип. Вот пример:
let number: Result<i32, _> = "42".parse();
match number {
Ok(n) => println!("Parsed number: {}", n),
Err(e) => println!("Error: {}", e),
}
- Использование метода
parse::
: этот метод позволяет явно указать тип переменной, в которую вы хотите проанализировать строку. Вот пример:
let number: Result<i32, _> = "42".parse::<i32>();
match number {
Ok(n) => println!("Parsed number: {}", n),
Err(e) => println!("Error: {}", e),
}
- Использование метода
unwrap
. Если вы уверены, что строку всегда можно преобразовать в целое число, вы можете использовать методunwrap
для прямого извлечения значения. Однако будьте осторожны, так как это приведет к панике, если синтаксический анализ завершится неудачно. Вот пример:
let number: i32 = "42".parse().unwrap();
println!("Parsed number: {}", number);
- Использование метода
unwrap_or
: этот метод позволяет предоставить значение по умолчанию в случае сбоя анализа. Вот пример:
let number: i32 = "42".parse().unwrap_or(0);
println!("Parsed number: {}", number);
- Использование контейнера
atoi
. Крейтatoi
предоставляет удобный способ преобразования строки в целое число. Вы можете добавить его как зависимость в свой файлCargo.toml
и использовать следующим образом:
use atoi::atoi;
let number: Option<i32> = atoi::<i32>("42".as_bytes());
match number {
Some(n) => println!("Parsed number: {}", n),
None => println!("Error: Failed to parse"),
}
Не стесняйтесь изменять их в соответствии со своими требованиями.