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中是不行的。