Метод parse
Метод parse преобразует строку в другой тип данных,
например, в число. Он возвращает результат типа
Result: вариант Ok при успешном преобразовании
и вариант Err, если преобразование невозможно.
Параметров метод не принимает, но целевой тип указывается
через аннотацию типа или с помощью турбофиш-синтаксиса.
Синтаксис
str.parse::<T>()
Пример
Давайте преобразуем строку "12345" в число типа
i32:
fn main()
{
let res: Result<i32, _> = "12345".parse();
println!("{:?}", res);
}
Результат выполнения кода:
Ok(12345)
Пример
Давайте попробуем преобразовать строку "abcde"
в число типа i32. Так как строка не является числом,
метод вернёт ошибку:
fn main()
{
let res: Result<i32, _> = "abcde".parse();
println!("{:?}", res);
}
Результат выполнения кода:
Err(ParseIntError { kind: InvalidDigit })
Пример
Давайте с помощью турбофиш-синтаксиса преобразуем строку
"12345" в число типа f64:
fn main()
{
let res = "12345".parse::<f64>();
println!("{:?}", res);
}
Результат выполнения кода:
Ok(12345.0)
Пример
Давайте обработаем результат преобразования с помощью
match и выведем число на экран:
fn main()
{
let res = "12345".parse::<i32>();
match res
{
Ok(n) => println!("{}", n),
Err(e) => println!("{}", e),
}
}
Результат выполнения кода:
12345