Go RPC Eli He 2018-01-20 Golang 1. RPC 客户端(client): 服务调用的发起方 客户端存根(client Stub): 运行在客户端机器上 存储调用服务器地址 将客户端请求数据信息打包 通过网络发给服务端存根程序 接收服务端响应的数据包,解析后给客户端 服务端(server): 服务提供者 服务端存根(server Stub): 存在与服务端机器上 接收客户端Stub程序发送来请求消息数据包 调用服务端的程序方法 将结果打包成数据包发给客户端Stub程序 阅读全文 rpc
Go 标准库unsafe Eli He 2018-01-16 Golang 1. unsafe包Go是强类型语言,不允许不同类型的指针互相转换。但它提供unsafe包作为中间媒介,快速实现类型转换,但该转换是不安全的。 1.1 Go指针和unsafe.Pointer的区别Go指针: 不能进行数学运算 不同类型的指针,不能相互转换 不同类型的指针不能使用 == 或 != 比较 不同类型的指针变量不能相互赋值 unsafe.Pointer: 12type ArbitraryType inttype Pointer *ArbitraryType 阅读全文 go
Go 单元测试 Eli He 2018-01-15 Golang 1. 基础测试1.1 最简单的测试1234567func Add(x, y int) int { return x + y}func Sub(x, y int) int { return x - y} 阅读全文 go
Go 正则表达式 Eli He 2018-01-12 Golang 1. 正则表达式12345678func main() { str := `171.43.145.13 - - [10/Mar/2020:10:19:06 +0800] "POST /api/user/detail HTTP/1.1" 200 252 "-" "LifePlanner/1.9.14 (com.njivtime.lifeplanner; build:1.9.14.9; iOS 13.3.1) Alamofire/4.8.2" "-" 0.009 0.009` re := regexp.MustCompile(`\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s`) arr := re.FindAllString(str, -1) fmt.Println(arr)} 阅读全文 go
Go 网络编程 Eli He 2018-01-10 Golang 1. 网络编程1234567net.Listen(network, address string) (Listener, error)listener.Accept() (Conn, err)conn.Close()conn.Read([]byte) (int, err)conn.Write([]byte)net.Dial(network, address string) (Conn, error) 阅读全文 go
Go 命令行参数 Eli He 2018-01-09 Golang 1. 命令行参数:os.Args []string123456789func main() { args := os.Args fmt.Printf("接收到%v个参数\n", len(args)) for i, v := range args { fmt.Printf("args[%v]=%v\n", i, v) }} 阅读全文 go