Menu
CoddyTech

将字符串解析为数字

本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 47 课,共 66 课。

Result 最常见的实际应用之一是将字符串转换为数字。在 Rust 中,这可以通过 .parse() 方法完成,这也很好地说明了为什么需要 Result,因为解析可能会失败。

.parse() 方法会尝试将字符串转换为数字,但并非每个字符串都表示有效的数字。例如,"42" 可以解析为数字 42,但 "hello" 无法转换为任何数字:

let valid_number = "42";
let invalid_number = "hello";

let result1: Result = valid_number.parse();
let result2: Result = invalid_number.parse();

解析成功时,.parse() 会返回包含转换后值的 Ok(number)。解析失败时,它会返回包含解析失败原因信息的 Err(error)。这会要求你显式处理这两种可能,避免程序因无效输入而崩溃。

你可以使用学过的任何 Result 处理方式来处理解析结果:使用 match 进行显式处理,如果你确定它会成功,则使用 unwrap(),或者使用 ? 运算符来传播错误。

challenge icon

挑战

简单
编写一个函数 parse_to_integer,它接受一个字符串 input,并返回解析后的整数值。如果字符串无法解析为有效整数,则返回 0 作为默认值。

使用 .parse() 方法将字符串转换为 i32,并妥善处理 Result,以提供安全的返回值。

参数:

  • input (String):要解析为整数的字符串

返回值:如果解析成功,则返回解析后的整数;如果解析失败,则返回 0(i32)

亲手试试

fn parse_to_integer(input: String) -> i32 {
    // 在这里编写代码
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Rust 在线编译器