版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/recall_yesterday/article/details/78914804
刚开始看书以为select,是Linux/unix中的IO复用。就直接掠过去了,没想到却不是。不过也是有那么点io复用的意思的。
先说语法,select的语法和go中的switch语法有些类似。
select {
case ch<- 1:
//do something
case x := <-ch:
//do something
default :
//do sth
}
switch expr{
case expr-value:
....
case expr-value2:
....
default :
.....
}
但是select受到的限制很多,首先它的case只能用于io的操作,如果有一个case发生了,那么就返回,如果都没发生就进入到default。
介绍完了,就是这么简单,其实select和channel的结合是很紧密的。