Go
文章平均质量分 70
天天爆零
这个作者很懒,什么都没留下…
展开
-
go并发编程之context
go并发编程之context1.什么是context? context是一种通知手段,例如现在后台有一个监听进程,你要如何在主进程中停止这个监听进程呢?有人会说,select+channel好了嘛,只要主进程往channel里面写数据,后台监听进程读取到channel里面的数据就停止,这其实是一个不错的方法,但是如果后台进程又起了100个后台进程呢?我关闭后台进程的时候,想顺便把后台进程起的子进程一起关掉,select+channel明显就不太行了。 子进程会起子进程,我们很容易就能联想...原创 2021-03-01 23:54:43 · 596 阅读 · 0 评论 -
Go之包,函数,方法
1.首先要了解Go的分级机制 Go是以包的形式来分级的在上面的图中,同一目录下的文件只能是相同的package,package名字可与目录不一样,Go的封装十分简单,若文件名,变量名是大写字母开头的,那这个变量或者函数是在各个包都是可见的,若是小写,那么只能在同一个包是可见的,即文件都是同一个package命名语句的。2.Go导入自定义的包我们可以看出,如果我们想导...原创 2020-03-27 21:22:17 · 390 阅读 · 0 评论 -
Go之数组,字符串,切片
数组: 1. 数组需要在初始化时定长,大小不可变,长度不同的数组会被认为是不同的类型,不能直接赋值 2. 数组为值传递,即b = a,其实是吧a的值都拷贝一份到b,若只读,应该用指针 3. 数组遍历可用 for k,v := a,k为下标,v为相对的值 4. 初始化,支持索引初始化,如a := [...]int{1,2,3:4...原创 2020-03-27 14:15:45 · 336 阅读 · 0 评论 -
Go语言选择器是如何选择的
我们都知道选择器其实就是类型里面的一个个方法,类型之间可以互相内嵌,经过代码证明,选择器会优先选择自身定义的方法,然后如果没有,就会去解析内嵌的类型的方法,例如定义类型t,同时内嵌了t1,t2两个类型,里面都有方法f,这是直接调用t.f,就会产生二义性,因为t1和t2在解析器看来都算是同一层,如果t1不变,f是在t2的内嵌t2.1定义的方法,这时候旧不会有问题,因为t1比t2高一层,但如果f同时定...原创 2020-03-17 17:12:31 · 188 阅读 · 0 评论