go语言学习
文章平均质量分 88
云原生手记
欢迎大家关注我的公众号“云原生手记”,将定期更新云计算技术文章
展开
-
golang之context使用
背景(欢迎关注“云原生手记”微信公众号)golang中并发编程的三种实现方式:chan管道、waitGroup和Context。本篇将重点介绍context的使用,告诉大家基本的使用方式,做到会用。Context概念介绍context译为上下文,golang在1.6.2的时候还没有自己的context,在1.7的版本中就把golang.org/x/net/context包被加入到了官方的库中。golang 的 Context包,是专门用来处理多个goroutine之间与请求域的数据、取消信号、截原创 2020-10-04 23:19:18 · 2775 阅读 · 3 评论 -
standard_init_linux.go:190: exec user process caused "no such file or directory"
今天打golang工程的镜像遇到一个问题,就是我在centos的主机上编译golang项目,然后使用Dockerfile构建镜像,用docker运行镜像时,日志一直报如下错误,且一直重启:standard_init_linux.go:190: exec user process caused "no such file or directory"Dockerfile如下:FROM alpi...原创 2020-04-27 18:41:12 · 2194 阅读 · 0 评论 -
goconvey调研及学习
GoConvey是一款针对Golang的测试框架,可以管理和运行测试用例,同时提供了丰富的断言函数,并支持很多 Web 界面特性。原创 2020-03-20 16:44:53 · 1236 阅读 · 0 评论 -
gomonkey调研文档和学习
gomonkey是gomonkey 是 golang 的一款打桩框架,目标是让用户在单元测试中低成本的完成打桩,从而将精力聚焦于业务功能的开发原创 2020-03-20 16:41:37 · 16520 阅读 · 2 评论 -
golang 内置函数append使用方式
内置函数append使用方式看一下内置函数append在buildin.go中的注释就知道了// The append built-in function appends elements to the end of a slice. If// it has sufficient capacity, the destination is resliced to accommodate the...原创 2020-02-01 20:20:47 · 6229 阅读 · 0 评论 -
Golang数组类型转换
最近写代码的时候会遇到类型转换,有时候对单独的变量强制转换没有问题,但要是对复杂的变量(例如数组)进行强制转换就会出现问题。问题1:可以将[]T1转换为[]T2吗?T1和T2底层类型是一样的。答案是不能,看一下例子:type T1 inttype T2 intvar t1 T1var x = T2(t1) // OKvar st1 []T1var sx = ([]T2)(st1) ...原创 2020-01-29 19:54:37 · 7261 阅读 · 0 评论 -
切片面试题:学习切片长度、容量,切片增长的过程
个人博客地址:https://zhounanjun.gitbook.io/nanjun/关于切片的面试题:摘自https://goquiz.github.io/#subslice-growfunc Subslice() { s := []int{1, 2, 3,4,5,6,7,8,9} ss := s[3:6] fmt.Printf("len ss : %d\n", l...原创 2019-12-22 14:34:43 · 673 阅读 · 0 评论 -
GO语言学习——(3) channel之影响发送方的原值
当接收方从通道接收到一个值类型的值时,对该值的修改就不会影响到发送方持有的那个原值。但对于引用类型的值来说,这种修改会同时影响手法双方持有的值。// 86_chan传引用类型package mainimport ( "fmt" "time")var mapChan = make(chan map[string]int, 1)func main() { synCha...原创 2019-05-20 14:48:24 · 184 阅读 · 1 评论 -
GO语言学习——(2) channel实操之通道阻塞
先初始化一个通道,最大容量是三个元素,当向该通道发送三个值后,该通道已满,再向其发送数据,将会被阻塞。当然,此时你可以从通道中拿出一个数据,那之前的发送数据的goroutine会被唤醒。看一下下面的程序:// 85_chanbase1package mainimport ( "fmt" "time")var strChan = make(chan string, 3)...原创 2019-05-20 14:16:03 · 1194 阅读 · 0 评论 -
GO语言学习——(1) channel入门
(一)简介 Go语言所提倡的一句话是:应该以通信作为手段来共享内存,这句话最直接的体现就是channel,它也是Go语言预定义的数据类型之一。 channel提供了一种机制,它既可以同步两个并发执行的函数,又可以额昂两个函数通过相互传递特定类型的值来通信。(二)channel的基本概念 在go语言中,chnnel既指通道类型,也指代可以传递某种类型的值的通道。通道即某一...原创 2019-05-20 13:45:31 · 303 阅读 · 0 评论