VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • 28. 这五点带你理解Go语言的select用法(2)

package main import (     "fmt" ) func main() {     c1 := make(chan int2)     c1 <- 2     select {     case c1 <- 4:         fmt.Println("c1 received: ", <-c1)         fmt.Println("c1 received: ", <-c1)     default:         fmt.Println("channel blocking")     } }

输出如下

c1 received:  2
c1 received:  4

6. 总结一下

select 与 switch 原理很相似,但它的使用场景更特殊,学习了本篇文章,你需要知道如下几点区别:

  1. select 只能用于 channel 的操作(写入/读出),而 switch 则更通用一些;

  2. select 的 case 是随机的,而 switch 里的 case 是顺序执行;

  3. select 要注意避免出现死锁,同时也可以自行实现超时机制;

  4. select 里没有类似 switch 里的 fallthrough 的用法;

  5. select 不能像 switch 一样接函数或其他表达式。

 

 

留言纠错


由于这个号,没有留言功能,文章中不可避免(尽管我已经尽力验证充分)会出现一些小毛病。

为了避免文章因我个人语言表达不当,或者个人理解有误,而误导初学者,请大家共同监督,若文章有说的不对的地方,请在下方链接里留言,帮我指正。谢谢大家,共同努力。Fighting


相关教程