字节切片(byte slice)相关的编译器漏洞和标准库设计失误
以下文章来源于Go 101 ,作者老貘
假如一个类型MyByte定义如下,如何将一个[]MyByte切片值和一个[]byte切片值互相转换为对方的类型?
pa…
Go值比较规则和其中的一些细节
以下文章来源于Go 101 ,作者老貘
在Go中,两个类型确定值是否可以比较取决于这两个值的类型是否相同或者其中的一个是否可以隐式转换为另一个的类型。另外一条规…

Go有GC就不需要掌握内存堆栈知识了吗?Go 堆栈的理解
在讲 Go 的堆栈之前,先温习一下堆栈基础知识。
什么是堆栈?在计算机中堆栈的概念分为:数据结构的堆栈和内存分配中堆栈。
数据结构的堆栈
堆:堆可以被看成是一…

Go GC 卡顿由秒级降到毫秒级以下:到底做了哪些优化?
垃圾回收(Garbage Collection,简称 GC)是编程语言中提供的内存管理功能。
在传统的系统级编程语言(主要指 C/C++)中,程序员定义了一个变…
Go将数字转换为字符串的正确姿势
以下文章来源于网管叨bi叨 ,作者KevinYan11
在许多语言中,你可以轻松地将任何数据类型转换为字符串,只需将其与字符串连接,或者使用类型转换表达式即可。…
一些编译时刻断言技巧
以下文章来源于Go 101 ,作者老貘
有时候,我们希望在编译时刻就能够判断某些条件是否成立,而不是等到运行时刻报错。但是Go并没有提供在编译时刻直接判断某个条…
如何声明支持有默认值的可选参数的函数?
以下文章来源于Go 101 ,作者老貘
我们知道,Go中的函数是不支持带默认值的可选参数的。这是Go语言的设计者为了保证代码可读性特意抛弃的功能。那么我们真得无…
使用append来克隆切片常常比使用copy高效得多
以下文章来源于Go 101 ,作者老貘
直接上基准测试:
package main
import "testing"
type E…

学习Golang的HTTP中间件机制
因为 Golang 内置的 net/http 天生就支持 HTTP 中间件机制,所以即便不用 gin 之类的 Web 框架,我们也可以写出扩展性很好的 Web …

go 学习笔记之学习函数式编程前不要忘了函数基础
以下文章来源于雪之梦技术驿站 ,作者雪之梦技术驿站
在编程世界中向来就没有一家独大的编程风格,至少目前还是百家争鸣的春秋战国,除了众所周知的面向对象编程还有日渐…
如何完美地克隆一个切片
以下文章来源于Go 101 ,作者老貘
Go官方维基上列出了两种复制克隆切片的方法。第一种是:
b = make([]T, len(a))
copy(b, …
Go中某些语句中的表达式之间的相对估值顺序未定义
以下文章来源于Go 101 ,作者老貘
Go语言中有很多独特的设计,也有很多从其它语言借鉴过来的设计。总体上看,Go和C语言的血缘最近。事实上,我们可以将Go语…

go 学习笔记之无心插柳柳成荫的接口和无为而治的空接口
以下文章来源于雪之梦技术驿站 ,作者雪之梦技术驿站
如果你还了解编程概念中的接口概念,那么我建议你最好还是先阅读上一篇文章.详情请点击 go 学习笔记之万万没想…

Go微服务不可获取的功能:容错与韧性(Service Resilience)
本文作者:倚天码农,授权发布
Service Resilience是指当服务的的运行环境出现了问题,例如网络故障或服务过载或某些微服务宕机的情况下,程序仍能够提…
细说Golang的JSON解析
之前一直写一些动态语言,觉得解析JOSN还是很简单的,往往只需要几行代码就能拿到解析好的JSON对象。Go语言自带的json包可以让你在程序中方便的读取和写入 …

go 学习笔记之万万没想到宠物店竟然催生出面向接口编程?
以下文章来源于雪之梦技术驿站 ,作者雪之梦技术驿站
到底是要猫还是要狗
在上篇文章中,我们编撰了一则简短的小故事用于讲解了什么是面向对象的继承特性以及 Go 语…

这个代码怎么会编译不通过?Goland 新手常见问题解决:GOPATH 和 Go Modules 编译不成功
点击上方蓝色“Go语言中文网”关注我们,设个星标,每天学习Go语言
自从 Go1.11 开始,官方开始支持依赖管理,这就是 Go Modules。如果你对 Go…

猜猜看go是不是面向对象语言?能不能面向对象编程?
以下文章来源于雪之梦技术驿站 ,作者雪之梦技术驿站
点击上方蓝色“Go语言中文网”关注我们,设个星标,每天学习Go语言
面向对象编程风格深受广大开发者喜欢,尤…