
Go
golang
祈晴小义
good good study, day day up.
展开
-
Golang 日志框架 Zap 入坑指南
文章目录简介CaseCase 1: Hello WorldCase 2: SugaredLoggercase 3: 定制化 SugaredLogger简介众所周知,Zap 是个很 nb 的日志框架,作为入门篇,本文主要用几个例子来直观地感受下 Zap 写出来的日志长什么样,符不符合我们的需求(主要是审美需求),性能什么的我们攒钱不 care。以下栗子由浅入深,循序渐进,大部分栗子可以直接 copy 运行。CaseCase 1: Hello WorldZap 的 Hello World 代码大原创 2020-12-19 18:08:39 · 5744 阅读 · 7 评论 -
Golang 随机获取本机可用端口
// 获取可用端口func GetAvailablePort() (int, error) { address, err := net.ResolveTCPAddr("tcp", fmt.Sprintf("%s:0", "0.0.0.0")) if err != nil { return 0, err } listener, err := net.ListenTCP("tcp", address) if err != nil { return 0, err } defer lis原创 2020-12-14 16:54:19 · 4071 阅读 · 0 评论 -
Go 两种形式的“类型转换”
Go 的类型转换常常让人有点迷,有两种形式的类型转换:Type(obj) :这种形式的类型转换要求 obj 对象的类型和 Type 是等价类型,即实现了相同的方法obj.(Type) :这种形式用于向下转型,即接口对象转结构体对象,所以 obj 必须是一个接口对象代码示例:package mainimport "fmt"type Animal interface { GetName() string}// Cat 实现 Animal 接口type Cat struct { n原创 2020-10-31 13:52:07 · 4165 阅读 · 0 评论 -
Go 读取 yaml 文件并解析
yaml 文件:# items.yamlitems: - path: aaaa - path: bbbb weight: "10" - path: cccc weight: "-5"Go 代码:package mainimport ( "fmt" "gopkg.in/yaml.v2" "io/ioutil")type Item struct { Path string `yaml:"path"` Weight string `yaml:"weigh原创 2020-10-24 14:44:14 · 2930 阅读 · 0 评论