Golang
人类观察所主任
你和你的酸奶,我舔我的瓶盖
展开
-
Golang - 如何优雅地处理错误
- 后端早读课翻译计划 第二篇 -欢迎关注微信公众号: 后端早读课本文提供了一个优雅的处理 Golang 中错误的方法,解决了 Golang error 只有字符串信息的局限性,提供了上下文信息、错误类型判断的功能。尽管 go 具有一个简单的错误模型,但是乍一看,事情并没有那么容易。在本文中,提供了一个很好的处理错误的策略并克服您可能遇到的问题。首先,我们将分析 go 中的错误是什么。然后,我们再看错误创建和处理之间的流程,并分析有可能出现的漏洞。Go 的错误类型查看内建的错误类型,我们可以得原创 2020-10-23 00:07:07 · 1346 阅读 · 0 评论 -
Go 语言中 Unsafe 包的用法
- 后端早读课翻译计划 第三篇-- 翻译自: a-journey-with-go欢迎关注微信公众号: 后端早读课本文列举在 Golang 中 unsafe 的一般用法,以及提供给开发者的一些建议。ℹ️ 本文基于 Go 1.12 版本。这个 Package 的名字其实已经告诉了我们,我们不应该用它。为了弄清楚为什么用它会导致不安全,我们先看下文档里说的:Package unsafe 包含一些可以绕过类型安全的操作。导入 unsafe 的包可能是不可移植( non-portable) 的,而原创 2020-10-22 10:04:04 · 610 阅读 · 0 评论 -
Go 协程堆栈设计进化之旅
- 后端早读课翻译计划 第四篇-- 翻译自: a-journey-with-go欢迎关注微信公众号: 后端早读课本文详细讲述了 Golang 中,堆栈设计理念以及演变过程。描述了从 Segment Stack 到 Contiguous Stack 、初始堆栈大小从 8Kb 到 2Kb 的原因。ℹ️ 文章基于 Go 1.12.Go 提供了一个轻量且智能的协程管理机制。轻量是因为协程堆栈初始化只有 2Kb,智能是因为协程堆栈可以根据我们的需要自动增加 / 减少。堆栈的大小定义,我们可以在这里找原创 2020-10-22 09:57:33 · 712 阅读 · 0 评论 -
golang的时区和神奇的time.Parse
转自: https://www.jianshu.com/p/f809b06144f7时区先写一段测试代码:const TIME_LAYOUT = "2006-01-02 15:04:05"func parseWithLocation(name string, timeStr string) (time.Time, error) { locationName := name if l, err := time.LoadLocation(locationName); err != ni转载 2020-07-15 10:30:42 · 2034 阅读 · 0 评论 -
如何在 Golang 中优雅的处理 MySQL 中的 Null 值
众所周知,在 MySQL 中,有一些字段不可逃避的要有 null 值。比如 datetime 字段,如果没有值,那么只能是 null 值。如果在 Golang 中不去做处理,而直接使用 time.Time 类型,则会报错,提示不能将 sql.NullTime 值转换为 time.Time。这时候,一脸懵逼。当你开心的将 struct 中 time.Time 类型改为 sql.NullTime 类型的时候,以为自己解决了这个问题。但是之后将从 DB 取出来的数据 Marshal 到 一个 time原创 2020-07-14 20:29:53 · 5242 阅读 · 0 评论 -
commands out of sync
commands out of sync. Did you run multiple statements at once使用 Golang 出现 commands out of sync. Did you run multiple statements at once 的情况,请查看你的 MySQL 连接 是否在执行之后 close 了 ?啊哈哈哈哈...原创 2020-04-26 15:44:37 · 1540 阅读 · 0 评论 -
unsupported Scan, storing driver.Value type []uint8 into type *time.Time
unsupported Scan, storing driver.Value type []uint8 into type *time.Time在 golang 操作数据库中出现unsupported Scan, storing driver.Value type []uint8 into type *time.Time错误如果数据库表里用了 timestamp 的类型,可能在 scan ...原创 2020-04-26 12:27:05 · 2855 阅读 · 1 评论 -
go get 超时问题的解决方案
go get 超时问题的解决方案go env--------...GOPROXY="https://proxy.golang.org,direct"...这个代理大概率超时,所以需要更换GOPROXY为国内代理。使用七牛的Go proxy 代理即可export GOPROXY=https://goproxy.cngo env--------...GOPROXY="htt...原创 2020-01-05 09:51:10 · 13618 阅读 · 3 评论