教程

golang标准库之path/filepath

package main import ( "fmt" "os" "path/filepath" ) func WalkFunc(path string, info os.FileInfo, err error) error { fmt.Println("File:", path, "IsDir:", info.IsDir(), "s...

golang标准库之strconv

字符串转整型 package main import ( "fmt" "strconv" ) func main() { //字符串转为整数 s := "128" // func ParseInt(s string, base int, bitSize int) (i int64, err err...

golang标准库之sort

简介 标准库sort实现了4种排序方法,插入排序、堆排序、快排和归并排序,但是并没有暴露给用户接口。sort包会根据数据选择最优的排序方法(其实只使用了3种,归并排序除外)。 接口 用户需要实现以下接口才能...

golang标准库之net/url包

完整的URL格式为: [scheme:][//[userinfo@]host][/]path[?query][#fragment] URL package main import ( "fmt" "net/url" ) func main() { urlString := "https://www.baidu.com...

golang标准库之strings包

Contains 判断字符串是否包含子串 package main import ( "fmt" "strings" ) func main() { src := "It's a cat." fmt.Println(strings.Contains(src, "It's")) fmt.Println(...

golang标准库之flag

flag包实现了简单的命令行参数解析,支持bool、int、int64、uint、uint64、float64、string和time.Duration八种类型的命令行解析。 使用方法 注册flag流程如下: import "flag" var ip = flag.Int("flagn...

GRPC (4) : 名字解析器

上一章学习了 gRPC 截止时间,多路复用和元数据等特性,今天学习名字解析器j及其实现原理。 名字解析器(Name Resolver) 名字解析器用作将给定的服务名称解析为对应的后端 IP 地址和端口号,gRPC 中默认使用...

GRPC (3) : 拦截器

上篇文章记录了 gRPC 四种通信模式及实现,今天学习一个新的知识点——拦截器。通常客户端请求到达服务端的时候不会立即进行业务处理,而是进行一些预处理操作,比如监控数据采集(统计 QPS),链路追踪,身份信息...

GRPC (2): 四种通信模式‍

上篇文章我们介绍了gRPC 的基本概念,今天实现一个完整的 gRPC 服务,包括 proto 文件的定义,客户端和服务端代码的生成以及业务逻辑代码的补充。 GRPC 四种通信模式‍ 普通模式(unary RPC) 假如...

GRPC (1) : 基本概念

Go gRPC 简介gRPC 是由 Google 开源的基于 HTTP/2 协议的开源远程过程调用(RPC)框架,使用 Protocol Buffers 序列化协议。相比于传统的 HTTP+JSON 的通信方式,gRPC 更轻量、更快速,拥有更多的优点。Go gRPC ...