为初学者解决 Rust 中的 parse() 错误
Solving parse() error in Rust for beginners
这是我的代码。它需要一个数字然后恐慌。
代码:
//Convert temperatures between Fahrenheit and Celsius.
use std::io;
fn main() {
let c: bool = true;
let f: bool = false;
let mut temperatur = String::new();
println!("Gib die Temperatur an:");
io::stdin()
.read_line(&mut temperatur)
.expect("Konnte nicht gelesen werden");
let temperatur_int: i32 = temperatur.parse::<i32>().unwrap();
println!("{}", temperatur_int);
}
错误:
Gib die Temperatur an: 5 thread 'main' panicked at 'called Result::unwrap()on anErrvalue: ParseIntError { kind: InvalidDigit }', src/main.rs:17:57 note: run withRUST_BACKTRACE=1 environment variable to display a backtrace
Tried to parse String to Integer
您做对了,但是您忘记了从标准输入读取时您的字符串中会换行。因此,您将得到无法解析的“32\n”而不是“32”。
在解析之前trim()也是如此:
let temperatur_int: i32 = temperatur.trim().parse::<i32>().unwrap();
这是我的代码。它需要一个数字然后恐慌。
代码:
//Convert temperatures between Fahrenheit and Celsius.
use std::io;
fn main() {
let c: bool = true;
let f: bool = false;
let mut temperatur = String::new();
println!("Gib die Temperatur an:");
io::stdin()
.read_line(&mut temperatur)
.expect("Konnte nicht gelesen werden");
let temperatur_int: i32 = temperatur.parse::<i32>().unwrap();
println!("{}", temperatur_int);
}
错误:
Gib die Temperatur an: 5 thread 'main' panicked at 'called Result::unwrap()on anErrvalue: ParseIntError { kind: InvalidDigit }', src/main.rs:17:57 note: run withRUST_BACKTRACE=1 environment variable to display a backtrace
Tried to parse String to Integer
您做对了,但是您忘记了从标准输入读取时您的字符串中会换行。因此,您将得到无法解析的“32\n”而不是“32”。
在解析之前trim()也是如此:
let temperatur_int: i32 = temperatur.trim().parse::<i32>().unwrap();