小编Jef*_*ite的帖子

为什么在比赛中使用以前未声明的名称?

我在阅读本书第二章的代码时遇到了一个问题:

let guess: u32 = match guess.trim().parse() {
    Ok(num) => num,
    Err(_) => continue,
};
Run Code Online (Sandbox Code Playgroud)

我的问题是Ok(num) => num:parse()返回一个值(Ok或Err),match将返回的值与第一个手臂进行比较。如果匹配,则表达式将在第一个分支旁边执行语句,对吗?

在Ok(num),num似乎突然弹起,因为当时没有申报num在前面的代码。与声明相同=> num::num突然进入范围。所以

  1. 如果我猜对了,match请将返回值与匹配Ok(),然后将(在之中Ok)分配给num。但是,为什么num右边的设备突然可用?
  2. 如果我猜对了,与Ok(num)和有Ok(_)什么区别?

pattern-matching rust

4
推荐指数
1
解决办法
147
查看次数

标签 统计

pattern-matching ×1

rust ×1