随笔分类 - go
摘要:强类型语言有它的优势,但也有不便利的地方,最典型的就是类型转换。Golang 作为一门强类型语言,而且不支持隐式类型转换,因此这个问题更突出。虽然 Go 提供了不少方式进行类型转换,包括相关的标准库,比如 strconv 包。 然而,strconv 包使用没那么方便,比如 "8" 转为 int 类型
阅读全文
摘要:日常工作中,最常用的数据传输格式就是json,而encoding/json库是内置做解析的库。这一节来看看它的用法,还有几个日常使用中隐晦的陷阱和处理技巧。 json 与 struct 解析 反解析 陷阱 1、忘记取地址 陷阱 2、大小写 陷阱 3、十六进制或其他非 UTF8 字符串 陷阱 4、数字
阅读全文
摘要:协程(goroutine)作为 Go 语言的扛把子,经常在各种 Go 工程项目中频繁露面,甚至有人会为了用 goroutine 而强行用他。 在 Go 工程师的面试中,也绕不开他,会有人问 ”如何停止一个 goroutine?”,一下子就把话题范围扩大了,这是一个涉及多个知识点的话题,能进一步深入问
阅读全文
摘要:error 这个大家肯定使用过,标准库的 error 错误实现比较简单,无法进行堆栈追溯,对于产生错误时的上层调用者来讲不是很友好,无法获得错误的调用链详细信息。 // 不带堆栈err := errors.New("error msg")fmt.Printf("%+v\n", err)// 输出er
阅读全文
摘要:01 介绍 工作中我们经常会遇到解码JSON格式的数据,本文通过4个示例介绍工作中常用到的四种 JSON格式。在 Golang语言中,通常是使用标准库的encoding/json包中的函数Unmarshal解码JSON格式的数据,下面我们先介绍一下该函数如何使用,再通过4个示例代码来演示一下如何在G
阅读全文
摘要:怎么用? 找到你的项目,直接执行 go mod init main.go 执行完会自动识别项目中用到的第三方包,并生成一个 go.mod 文件 $ cat go.mod module collector_go go 1.14 require ( github.com/gogo/protobuf v1
阅读全文