Go语言----控制结构

switch知识点:

switch/case 后是一个表达式(即:常量,变量,一个有返回的函数都可以);

case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致;

case后面可以带多个表达式,使用逗号间隔;

case后面的表达式如果是常量值,则要求不能重复;

case后面不需要带break,程序匹配到一个case后就会执行对应的代码块,然后退出
switch,如果一个都匹配不到,则执行default;

default语句不是必须的;

switch 后也可以不带表达式,类似 if --else分支来使用;

switch 后也可以直接声明一个变量,分号结束,不过不推荐。

switch穿透:如果在case语句增加fallthrough,则会继续执行下一个case,默认只穿透一层,如下:

package main
 
import "fmt"
 
func main() {
 
    switch {
    case false:
            fmt.Println("The integer was <= 4")
            fallthrough
    case true:
            fmt.Println("The integer was <= 5")
            fallthrough
    case false:
            fmt.Println("The integer was <= 6")
            fallthrough
    case true:
            fmt.Println("The integer was <= 7")
    case false:
            fmt.Println("The integer was <= 8")
            fallthrough
    default:
            fmt.Println("default case")
    }
}

type-switch :来判断interface变量中实际指向的变量类型,比如:

package main
import (
	"fmt"
)
func main() {
	var x interface{}
	var y = 10
	x=y
	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("未知型")
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43743711/article/details/128438496