Golang的Switch与Select的逻辑,和其他语言不同。一不留神就是个坑。

多个Case中时,第一个case总是被抛弃的,同时也不会进到default里面。

当a=2时,没有任何输出。无论第一个打印,还是default都没有。

当a=3时,输出“第一个case”。

当a=4时,输出“第二个case”。

当a=其他值时,才输出default。

和switch一样,select是相同的逻辑和分支走向。

此时虽然c1有值,但是c1在select中是被抛弃的,所以无任何输出。

把c1<-1改成c2<-1,输出“进来了”。

当c1和c2都没有值,才会进入到default中。

另外,switch可以case12这样逗号分隔,同一行的case中写多个值,这种写法在select中是不行的。