go switch 的用法

作者: 五岁小孩 | 来源:发表于2021-02-18 11:25 被阅读0次

简介

switch 默认情况下 case 最后自带 break 语句

匹配成功后就不会执行其他 case,

如果我们需要执行后面的 case,可以使用 fallthrough

用法一

用于等值判断

switch var1 {
    case val1,val11:
        ...
    case val2,val22:
        ...
    default:
        ...
}

变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值

类型不被局限于常量或整数,但必须是相同的类型;或者最终结果为相同类型的表达式。

您可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:case val1, val2, val3

用法二

多重if判断语句

switch true {
    case 逻辑判断表达式1:
        ...
    case 逻辑判断表达式2:
        ...
    default:
        ...
}

用法三

switch 语句还可以被用于 type-switch 来判断

某个 interface 变量中实际存储的变量类型。

 var x interface{}
     
   switch i := x.(type) {
      case nil:  
         fmt.Printf(" x 的类型 :%T",i)                
      case int:  
         fmt.Printf("x 是 int 型")                      
      case float64:
         fmt.Printf("x 是 float64 型")          
      case func(int) float64:
         fmt.Printf("x 是 func(int) 型")                      
      case bool, string:
         fmt.Printf("x 是 bool 或 string 型" )      
      default:
         fmt.Printf("未知型")    
   }  

相关文章

网友评论

    本文标题:go switch 的用法

    本文链接:https://www.haomeiwen.com/subject/ltpgxltx.html