📜  Rust – 开关盒

📅  最后修改于: 2022-05-13 01:54:50.050000             🧑  作者: Mango

Rust – 开关盒

switch 语句基本上是嵌套的 if 语句,虽然它不支持表达式,但它匹配 int、 字符串或 boolean 数据类型变量与程序员提供的一组给定案例。它主要用于菜单驱动的程序,用户可以在其中选择要运行的函数。 Rust 中的 switch case 是通过关键字匹配来实现的。让我们看几个例子,看看它是如何工作的。

1.单变量匹配:

与 C 或Java不同,只执行匹配对应的 case,所以我们不必担心失败。从而节省了我们在每个 case 之后编写 break 语句的工作。默认情况下,找不到匹配项,由情况“_”(下划线)处理。 Rust 有一些特别之处,cases 可以有多个值。

例子:

Rust
fn main() {
  let num=3;
  match num{
  1=>println!("One"),
  2=>println!("Two"),
  3=>println!("Three"),
  _=>println!("Rest of the number"),
  
}


Rust
fn main() {
  let num=2;
  match num{
  1|3|5|7|9=>println!("Odd"),
  2|4|6|8=>println!("Even"),
  _=>println!("Only one  digit allowed"),
  }
  
}


Rust
fn main() {
  let num=19;
  match num{
  13..=19=>println!("Teenage"),
  _=>println!("Not Teenage"),
  }
  
}


Rust
fn main() {
  let head = false;
    let coin_side = match head{
        false => "tail",
        true => "head",
    };
    println!("Coin Side={}", coin_side)
}


Rust
fn main() {
  let coin = "head";
    match coin{
        "head" =>println!("head"),
        "tail"=> println!("tail"),
        _=>println!("False coin"),
    };
}


输出



Three

2. 一个案例中的几个值:

通过使用“|”分隔多个值,可以将它们包含在单个大小写中。

例子:

fn main() {
  let num=2;
  match num{
  1|3|5|7|9=>println!("Odd"),
  2|4|6|8=>println!("Even"),
  _=>println!("Only one  digit allowed"),
  }
  
}

输出

Even

我们还可以在每种情况下包含一系列值,这还不是结束。

3. 包含范围的情况:

在这种情况下,范围是包含在内的,这意味着还包括两端。

例子:



fn main() {
  let num=19;
  match num{
  13..=19=>println!("Teenage"),
  _=>println!("Not Teenage"),
  }
  
}

输出

Teenage

4.布尔匹配案例:

正如开头所说,我们还可以使用布尔值来匹配案例,现在我们将继续使用它。还有一件事是 match 可以在表达式中使用。

例子:

fn main() {
  let head = false;
    let coin_side = match head{
        false => "tail",
        true => "head",
    };
    println!("Coin Side={}", coin_side)
}

输出

Coin Side=tail

5. 字符串匹配案例:

最后,我们将看到如何在匹配中使用字符串。

例子:

fn main() {
  let coin = "head";
    match coin{
        "head" =>println!("head"),
        "tail"=> println!("tail"),
        _=>println!("False coin"),
    };
}

输出

head