From 7a16a865ae2c7c0932cd14f80aab1eb5b4263fcc Mon Sep 17 00:00:00 2001 From: Doug Date: Tue, 3 Jan 2023 10:00:57 -0800 Subject: [PATCH] Update match-expressions.md The original code would always print "Unknown program name!". --- src/control-flow/match-expressions.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/control-flow/match-expressions.md b/src/control-flow/match-expressions.md index 50977ceb6cfd..05a47871236a 100644 --- a/src/control-flow/match-expressions.md +++ b/src/control-flow/match-expressions.md @@ -5,13 +5,16 @@ that sense, it works like a series of `if let` expressions: ```rust,editable fn main() { - match std::env::args().next().as_deref() { - Some("cat") => println!("Will do cat things"), - Some("ls") => println!("Will ls some files"), - Some("mv") => println!("Let's move some files"), - Some("rm") => println!("Uh, dangerous!"), - None => println!("Hmm, no program name?"), - _ => println!("Unknown program name!"), + let args: Vec = std::env::args().collect(); + + for s in &args[1..] { + match &s[..] { + "cat" => println!("Will do cat things"), + "ls" => println!("Will ls some files"), + "mv" => println!("Let's move some files"), + "rm" => println!("Uh, dangerous!"), + _ => println!("Unknown program name!"), + } } } ```