Go In Action 读书笔记 一

架构流程图

关键字

var

变量使用var声明, 如果变量不是定义在任何一个函数作用域内, 这个变量就是包级变量.

Go语言中, 所有变量都被初始化为其零值. 对于数值类型, 其零值是0; 对于字符串类型, 其零值是空字符串”"; 对于布尔类型, 其零值是false. 对于引用类型来说, 底层数据结构会被初始化对应的零值. 但是被生命被起零值的引用类型的变量, 会返回nil作为其值.

const

定义常量

interface

声明接口

func

声明函数

defer

安排后面的函数调用在当前函数返回时才执行.

file, err = os.open("filePath")
if err != nil
    return
defer file.close()
# more file operation

自定义GOPATH下安装godep失败

我的环境变量是这样的: export GOROOT=/usr/local/go export GOPATH=/Users/addo/Workspaces/go_w export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN 使用下面的命令安装报错: go get -v github.com/tools/godep github.com/tools/godep (download) github.com/tools/godep/vendor/github.com/pmezard/go-difflib/difflib github.com/tools/godep/vendor/github.com/kr/fs github.com/tools/godep/vendor/github.com/kr/text github.com/tools/godep/vendor/golang.org/x/tools/go/vcs github.com/tools/godep/vendor/github.com/kr/pretty github.com/tools/godep go install github.com/tools/godep: open /usr/local/go/bin/godep: permission denied 默认是安装到$GOBIN目录下, 权限不够

Raft算法学习

Raft 强一致性算法 名词 复制状态机 复制状态机是通过复制日志来实现的, 按照日志中的命令的顺序来执行这些命令. 相同的状态机执行相同的日志命令, 获得相同