match
ํํ์
match
ํค์๋๋ ์ด๋ค ๊ฐ์ ํ๋ ์ด์์ ํจํด์ ๋ํด ๋งค์นํ๋๋ฐ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฐ ๋ฉด์์ if let
ํํ์์ ์ฌ๋ฌ๊ฐ ์ด์ด ๋์ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค:
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!"), } }
if let
๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋งค์น์ ๋ชจ๋ ํ(arm)์ ๊ฐ์ ํ์
์ด์ด์ผ ํฉ๋๋ค. ํ์ด ๋ธ๋ก์ด๋ผ๋ฉด ๋ธ๋ก์ ๋ง์ง๋ง ํํ์์ด ๊ทธ ํ์
์ด ๋ฉ๋๋ค. ์์ ์์ ์์ ๋งค์น ํํ์์ ํ์
์ ()
์
๋๋ค.
ํจํด์ ๊ดํ ์ค๋ช ์ ํจํด ๋งค์นญ์ ์ฐธ์กฐํ์ธ์.
match
ํํ์์ ๋ณ์์ ํ ๋นํ๊ณ ๊ทธ ๊ฐ์ ์ถ๋ ฅํด๋ณด์ธ์..as_deref()
๋ฅผ ์ง์๋ณด๊ณ , ์ด ๋ ๋์ค๋ ์๋ฌ๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.std::env::args().next()
๋Option<String>
๊ฐ์ ๋ฐํํ๋๋ฐ,String
์ ์ง์ ๋งค์นํ ์ ์์ต๋๋ค.as_deref()
๋Option<T>
๋ฅผOption<&T::Target>
์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค. ์ด ๊ฒฝ์ฐ๋Option<String>
์์Option<&str>
๋ก ๋ฐ๋๋๋ค.- ์ด์ ๋ ํจํด ๋งค์นญ์ผ๋ก
Option
์์&str
์ ๋งค์นํ ์ ์์ต๋๋ค.