gpg 密钥生成与延期 # 生成 gpg 密钥gpg --gen-key# 生成吊销证书gpg --gen-revoke 695C8981B2442634# 列出所有 gpg 公钥gpg --list-keys# 列出所有 gpg 私钥gpg --list-secret-keys# 删除 gpg  Linux 2020/02/12
golang rpc demo 本文最后更新于 2020/07/11 10:27:26 。客户端调用服务端server.gopackage mainimport ( "log" "net" "net/http" "net/rpc" Golang 2020/01/14
golang 反射的使用 package mainimport ( "fmt" "go/ast" "reflect")type Member struct { Id &nbs Golang 2020/01/04
注意 io.MultiWriter 的返回值 本文最后更新于 2020/07/04 01:58:54 。io.MultiWriter() 可以将多个实现 io.Writer 接口实例包装为一个,实现多实例统一写入。但在开发自定义日志库时使用此函数遇到了这样一个问提,传入的多个接口实例总会有几个不会生效,而且好似是否生效还跟入传参位置有关。 Golang 2019/12/25
golang 模板语法 测试用的变量和方法type struct Blog { Title string}map[string]interface{}type FuncMap map[string]interface{}func add(x, y int) int变量{{/* . 代表传入模板的 struct&nb Golang 2019/12/08
golang 中的两种锁 sync.Mutex1.sync.Mutex 为互斥锁,适用于读写不确定,并且只有一个读或者写的场景。2.在一个 goroutine 获得互斥锁后,其他 goroutine 只能等待释放该互斥锁。3.在同一个 goroutine 中的 sync.Mutex 解锁之前再次进行加锁,会导致死锁。4.Lock() 加锁后不能再继续对其加锁,会阻塞直到 Unlock() 解锁后才能加锁。5.在没有锁的情况下解锁会导致 panic 错误。package mainimport& Golang 2019/12/05
golang context 与 sync.WaitGroup package mainimport ( "context" "fmt" "sync" "time")var ( key Golang 2019/12/04
golang interface 类型值 接口值由两个部分组成,一个具体的类型和那个类型的值,它们被称为接口的动态类型和动态值。当且仅当接口的动态值和动态类型都为 nil 时,接口类型值才为 nil 。案例说明package mainimport "fmt"type Service interface { Name()}type MySql struct{}fun Golang 2019/11/20
golang 切片中的引用 array := [11]byte{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'}fmt.Println(array)// Golang 2019/11/16
golang 内建函数 append// 将元素追加到切片的末尾。 如果原切片具有足够的容量,它将追加元素到切片的末尾。 如果没有,将分配一个新的底层数组来追加新元素并返回新的切片,因此要将追加后切片重新赋值给原切片变量:// slice = append(slice, elem1, elem2)// slice = append(slice, anotherSlice...)//&nbs Golang 2019/11/12