赞了文章2018-06-15
这个文档系列是我第一次认真学习 GNU m4 并进行了一些实践之后的一些总结。由于我在撰写此文的过程中充满着像 m4 展开一个又一个宏一般的耐心,因此这篇文章会比较长。在这个信息碎片化的时代,似乎没有很多人愿意去看很长的文章,大家更喜欢干货。为了节省大家的时...
赞了文章2018-03-07
三色标记的原理如下:整个进程空间里申请每个对象占据的内存可以视为一个图, 初始状态下每个内存对象都是白色标记,先stop the world,将扫描任务作为多个并发的goroutine立即入队给调度器,进而被CPU处理,第一轮先扫描所有可达的内存对象,标记为灰色放入队列;第...
回答了问题2017-08-10
类型断言结果是一个多返回值: typedObj, suc := i.(Type), 第二个返回值 suc 表示类型断言是否成功. 从语法上讲, 第二个返回值可以省略 (_或者不写), 但是在使用中强烈不建议这么做, 因为如果 suc == false, 那么后续代码使用 typedObj 可能导致程序 panic.
回答了问题2017-08-09
外部包应该有开关来关闭这个显示, 否则侵入性太强, 设计不够规范, 建议换一个外部包 实在不行, 可以这样 hack (注意放在 flag.Parse() 之前) {代码...}
回答了问题2017-08-09
配置文件路径应该作为命令行参数可配置 如果是基于程序文件的相对目录, 参考做法: {代码...}
赞了回答2017-05-20
如果是自己写的,建议直接换个名字,不是个好习惯,如果是用的第三方库,可以参考:[链接] {代码...}
回答了问题2016-11-03
在 go 语言中, goroutine可以理解为一个线程(当然实际上并不是)。 一个进程可以创建任意多个线程(只要系统资源足够), 类似的, 一个go进程可以创建任意多个goroutine, 也就是说题主说的开 100个goroutine都是在一个系统进程中完成的. 当计算量大时, 如果系统...
关注了问题2016-11-03
关注了问题2016-10-18
回答了问题2016-10-17
在 Go 是 强类型编译型语言 和 没有泛型(或模板) 两大前提下, 这个问题没有优雅的解。只能采用一些变通的方法,比如 改用 container/list 包提供的 List ;
关注了问题2016-10-17
赞了文章2016-10-14
从 GitLab 8.0 开始,GitLab CI 就已经集成在 GitLab 中,我们只要在项目中添加一个 .gitlab-ci.yml 文件,然后添加一个 Runner,即可进行持续集成。 而且随着 GitLab 的升级,GitLab CI 变得越来越强大,本文将介绍如何使用 GitLab CI 进行持续集成。
回答了问题2016-10-14
build 配置错误, go.exe build ....../main.go 命令缺少了 test.go . 解决办法是把 test.go 加上, 或者 main.go 改成 *.go
关注了问题2016-10-14
赞了回答2016-10-11
这个是插入模式的一个mapping。貌似用途是将光标上方的一个单词复制到当前位置。大概的原理是这样: @@@ 这个其实是一个place holder。方便后面的两次定位(? 和 /)。理解这个之后其它就... hhk 移动光标到上方的一个单词内 yw 复制 P 粘贴到当前行的上方,也就是起初...
提出了问题2016-04-27
回答了问题2016-04-20
环境变量是与进程相关的, 进程开始的时候继承(可以理解为拷贝)他的父进程的所有环境变量, 此后进程对环境变量的修改不会影响父进程, 进程结束时它的环境变量被全部清除.
回答了问题2016-04-18
An import path is a pattern if it includes one or more "..."wildcards, each of which can match any string, including the emptystring and strings containing slashes. Such a pattern expands to allpackage directories found in the GOPATH trees with na...
提出了问题2015-03-17