golang switch case 匹配字符串

golang switch case 匹配字符串

golang switch case 匹配字符串

在Go语言中,switch语句是用于处理多个条件的一种流控制语句。通过switch语句结合casefallthrough关键字,我们可以方便地处理多个条件分支。在本文中,我们将详细讨论如何使用switch语句来匹配字符串。

switch语句的基本语法

switch语句基本的语法形式如下:

switch variable {
  case value1:
    // 当variable等于value1时执行这里的代码
  case value2:
    // 当variable等于value2时执行这里的代码
  ...
  default:
    // 当没有匹配的case时执行这里的代码
}

switch语句会将variable和各个case后面的值进行比较,当variable等于某个case后面的值时,就会执行对应的代码块。如果没有匹配的case,则会执行default后面的代码块。其中,default是可选的,如果没有匹配的case,则会执行default中的代码块。

接下来,我们将看一些具体的示例来说明如何在Go语言中使用switch语句匹配字符串。

示例代码

package main

import "fmt"

func main() {
  fruit := "apple"

  switch fruit {
    case "apple":
      fmt.Println("It's an apple!")
    case "banana":
      fmt.Println("It's a banana!")
    case "orange":
      fmt.Println("It's an orange!")
    default:
      fmt.Println("It's not a fruit we know.")
  }
}

在上面的示例代码中,我们定义了一个fruit变量,并根据不同的fruit值执行不同的代码块。当fruit为”apple”时,会输出”It’s an apple!”;当fruit为”banana”时,会输出”It’s a banana!”;当fruit为”orange”时,会输出”It’s an orange!”;其他情况下,会输出”It’s not a fruit we know.”。

运行以上代码,输出为:

It's an apple!

模式匹配

在Go语言中,switch语句还支持对表达式进行模式匹配。通过case后面加上一个表达式,可以使case条件更加灵活。

以下是一个使用字符串模式匹配的示例:

package main

import "fmt"

func main() {
  fruit := "apple"

  switch {
    case fruit == "apple":
      fmt.Println("It's an apple!")
    case fruit == "banana":
      fmt.Println("It's a banana!")
    case fruit == "orange":
      fmt.Println("It's an orange!")
    default:
      fmt.Println("It's not a fruit we know.")
  }
}

在这个示例中,我们使用switch后面没有跟具体的变量,而是对fruit值进行了比较。运行以上代码,输出依然为:

It's an apple!

多个条件匹配

有时候我们可能会希望在一个case中匹配多个条件,这时候可以使用逗号分隔多个条件,只要有一个条件匹配即可。

下面是一个示例:

package main

import "fmt"

func main() {
  fruit := "apple"

  switch fruit {
    case "apple", "banana":
      fmt.Println("It's a common fruit!")
    case "orange", "peach":
      fmt.Println("It's a juicy fruit!")
    default:
      fmt.Println("It's not a fruit we know.")
  }
}

在这个示例中,当fruit为”apple”或”banana”时,输出”It’s a common fruit!”;当fruit为”orange”或”peach”时,输出”It’s a juicy fruit!”。其他情况下,输出”It’s not a fruit we know.”。

fallthrough关键字

switch语句中,当某个case执行完毕后,会自动退出switch语句。但有时候我们希望在匹配成功后继续执行后面的case,这时候可以使用fallthrough关键字。

以下是一个使用fallthrough的示例:

package main

import "fmt"

func main() {
  fruit := "apple"

  switch fruit {
    case "apple":
      fmt.Println("It's an apple!")
      fallthrough
    case "banana":
      fmt.Println("It's a banana!")
    case "orange":
      fmt.Println("It's an orange!")
    default:
      fmt.Println("It's not a fruit we know.")
  }
}

在这个示例中,当fruit为”apple”时,会输出”It’s an apple!”,并且由于使用了fallthrough关键字,继续执行下一个case,输出”It’s a banana!”。

结语

通过以上示例,我们了解了在Go语言中如何使用switch语句匹配字符串。通过case、模式匹配、多条件匹配和fallthrough关键字,我们可以根据不同的条件执行不同的代码块,从而实现灵活的逻辑控制。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程