随笔分类 -  Golang

摘要:以上这段代码是会报错的,cannot unmarshal string into Go value of type map[string]string 这样看是没啥问题的,但是就是行不通 但是如果改成这样子,就正常了 原因是json这个包的marshal方法返回的虽然是[]byte数组,但是并非简单 阅读全文
posted @ 2019-05-30 20:49 __Miracle 阅读(903) 评论(0) 推荐(0)
摘要:关于如何使用go语言实现新进程的创建和进程间通信,我在网上找了不少的资料,但是始终未能发现让自己满意的答案,因此我打算自己来分析这部分源代码,然后善加利用,并且分享给大家,期望大家能从中获得启发。 首先我们来看一段代码 proc, _ := os.StartProcess(name, args, a 阅读全文
posted @ 2019-05-01 10:51 __Miracle 阅读(6178) 评论(0) 推荐(0)
摘要:golang 写循环执行的定时任务,常见的有以下三种实现方式:1、time.Sleep方法: for { time.Sleep(time.Second) fmt.Println("我在定时执行任务")}2、time.Tick函数: t1:=time.Tick(3*time.Second)for { 阅读全文
posted @ 2019-04-30 17:28 __Miracle 阅读(13523) 评论(0) 推荐(0)
摘要:Go:表驱动单元测试 单元测试相当的重要,这几天实习由于单元测试没写好所以被骂了emmm 痛定思痛,立刻上网学习了一下,总算达到了预期的效果,所以写一篇文章记录一下 首先安装gotests $go get -u github.com/cweill/gotests/... 然后记得添加到PATH里面 阅读全文
posted @ 2019-02-24 14:47 __Miracle 阅读(275) 评论(0) 推荐(0)
摘要:Nsq服务端简介 在使用Nsq服务之前,还是有必要了解一下Nsq的几个核心组件整个Nsq服务包含三个主要部分 nsqlookupd 先看看官方的原话是怎么说:nsqlookupd是守护进程负责管理拓扑信息。客户端通过查询 nsqlookupd 来发现指定话题(topic)的生产者,并且 nsqd 节 阅读全文
posted @ 2019-02-12 17:06 __Miracle 阅读(1584) 评论(0) 推荐(0)
摘要:go只提供了一种循环方式,即for循环,在使用时可以像c那样使用,也可以通过for range方式遍历容器类型如数组、切片和映射。但是在使用for range时,如果使用不当,就会出现一些问题,导致程序运行行为不如预期。比如,下面的示例程序将遍历一个切片,并将切片的值当成映射的键和值存入,切片类型是 阅读全文
posted @ 2018-12-18 12:18 __Miracle 阅读(274) 评论(0) 推荐(0)
摘要:先看代码: 如果这样子是会报错的 报错如下: 说在抢占数据 这就很奇怪了 明明加上了的锁的? 经过百般折磨,终于弄清了问题所在 !!!划重点! 并不是锁失效,出现这个的原因是,for里面的i变量每次循环都是同一个,所以其实并不是两个routine在抢资源,而是因为routine里面对i进行了操作 然 阅读全文
posted @ 2018-12-03 15:37 __Miracle 阅读(496) 评论(0) 推荐(0)
摘要:遇到的问题:用Slice 直接截取字符串的时候会出现乱码现象 解决方法: 经过百度在网上找的了rune这个鬼;rune 是golang内置的类型,底层类型是int32。而byte类型底层是int8, 从而决定了rune能从byte表达更多的数。 rune 详情请参考 浅析rune,byte pack 阅读全文
posted @ 2018-12-02 11:17 __Miracle 阅读(566) 评论(0) 推荐(0)
摘要:Golang之路 引子 与其感慨路难行,不如马上出发 目录 引子 与其感慨路难行,不如马上出发 目录 引子 与其感慨路难行,不如马上出发 目录 阅读全文
posted @ 2018-12-02 11:06 __Miracle 阅读(221) 评论(0) 推荐(0)