&和*这可能是Go中最令人困惑的事情之一。基本上你需要了解3个案例: &操作符 var str string ="123" //打印str变量的内存地址 ftm.Println(&str) 获取变…
标签:go
如何导入golang.org的包
golang是google开源的编程语言,用久了就会对这个事实有深刻的体会 比如说,go get一些包的时候,失败liao。 怎么解决国内golang.org下的包无法下载到本地GOPATH的问题呢? 例子: githu…
闭包,sync使用细节
代码 先看代码如下: func main() { var a []int for i := 0; i < 100; i++ { go func() { a = append(a, i) }() } time.Sle…
golang协程池设计
Why Pool go自从出生就身带“高并发”的标签,其并发编程就是由groutine实现的,因其消耗资源低,性能高效,开发成本低的特性而被广泛应用到各种场景,例如服务端开发中使用的HTTP服务,在golang net/…
Golang之轻松化解defer的温柔陷阱
什么是defer? defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。 defer语句通常用于一些成对操作的场景:…
Go goroutine理解
Go语言最大的特色就是从语言层面支持并发(Goroutine),Goroutine是Go中最基本的执行单元。事实上每一个Go程序至少有一个Goroutine:主Goroutine。当程序启动时,它会自动创建。 为了更好理…
golang slice append 后 capacity 增长的算法
一道题目: append函数 函数定义:func append(slice []Type, elems ...Type) []Type 函数说明:内建函数append追加一个或多个elems到一个slice依赖的arra…
新年彩蛋之中大奖
2019年计划通过福利彩票发家致富的,可以好好看一看这篇博客。作为新年彩蛋来送给大家,也希望大家能真的中大奖。 —— 新年快乐,给每个有梦想的程序员 生成随机号 小概率事件也要做的一丝不苟,大家都是程序员,为啥要用别人家…
Go源码剖析:内置类型
Go内置类型定义在$GOROOT/src/builtin/builtin.go中,分为内置函数和内置数据类型 内置数据类型 简单类型 整型:int,int8,int16,int32,int64 无符号整型:uint,ui…
垃圾回收之引用计数
思来想去,决定总结一下垃圾回收机制。引用计数与我结缘最早,也比较简单、基础,遂决定从引用计数入手。 —— 不管人非笑,不管人毁谤,不管人荣辱,任他功夫有进有退,我只是这致良知的主宰不息,久久自然有得力处 Referenc…
reflect笔记
reflect使用和源码阅读的心得笔记。 TypeOf使用 package main import ( "fmt" "reflect" ) type S struct { A float64 `usage:"a"` B …
xxx
kube-controller-manager 基本流程: 1、构造 2、配置 3、初始化 4、执行 入口函数:/cmd/kube-controller-manager/controller-manager.go fun…