diff --git a/src/basic/match-pattern/pattern-match.md b/src/basic/match-pattern/pattern-match.md index 5b8837e5..277e139e 100644 --- a/src/basic/match-pattern/pattern-match.md +++ b/src/basic/match-pattern/pattern-match.md @@ -65,6 +65,35 @@ while let Some(top) = stack.pop() { 你也可以用 `loop` + `if let` 或者 `match` 来实现这个功能,但是会更加啰嗦。 +
+ loop + if let + + ```rust + loop { + if let Some(top) = stack.pop() { + println!("{}", top); + } else { + break; + } + } + ``` +
+ +
+ loop + match + + ```rust + loop { + match stack.pop() { + None => break, + Some(x) => println!("{}", x), + // _ => println!("Default Switch"), + // 注:这里不需要处理默认分支,因为 Option 只有 None Some(x) 这两种情况 + } + } + ``` +
+ #### for 循环 ```rust