go且学且记录

来源:互联网 发布:足球数据库 编辑:程序博客网 时间:2024/04/30 11:27

go语言发芽史

先解决有和无得问题,再进一步迭代。

基础中的战斗机

x,ok := m["b"]//这种即是所谓的ok-idiom模式,是指在多返回值中用一个ok的布尔值来表示操作是否成功

管道的基本用法

// 声明方式,在此ElemType是指此管道所传递的类型 2 var chanName chan ElemType 3 // 声明一个传递类型为int的管道 4 var ch chan int 5 // 声明一个map,元素是bool型的channel 6 var m map[string] chan bool 7  8 // 定义语法,定义需要使用内置函数make()即可,下面这行代码是声明+定义一个整型管道 9 ch := make(chan int)10 // 事先定义好管道的size,下面这行代码定义管道的size为10011 ch := make(chan int, 100)12 13 // 由管道中读写数据,<-操作符是与最左边的chan优先结合的14 // 向管道中写入一个数据,在此需要注意:向管道中写入数据通常会导致程序阻塞,直到有15 // 其他goroutine从这个管道中读取数据16 ch<- value17 // 读取数据,注意:如果管道中没有数据,那么从管道中读取数据会导致程序阻塞,直到有数据18 value := <-ch19 20 // 单向管道21 var ch1 chan<- float64     // 只能向里面写入float64的数据,不能读取22 var ch2 <-chan int         // 只能读取int型数据23 24 // 关闭channel,直接调用close()即可25 close(ch)26 // 判断ch是否关闭,判断ok的值,如果是false,则说明已经关闭(关闭的话读取是不会阻塞的)27 x, ok := <-ch

事先需要制定通道大小,如c := make(chan int, 3)//创建带三个缓冲槽的一步通道,如果缓冲区未满则不会阻塞

0 0
原创粉丝点击