Golang笔记之Redis
本文首发于公众号:Hunter后端 原文链接:Golang笔记之Redis 这一篇笔记主要介绍 Golang 连接和使用 Redis,以下是本篇笔记目录: 目录1、安装模块2、连接 Redis3、字符串1. 字符串写入2. 字符...
atomic不是免费午餐
很多初级甚至中级开发会滥用atomic,因为在他们的世界观里atomic比mutex轻量,性能总是优于锁的。 这话不能算错,但有个很重要的前提,那就是原子操作竞争不激烈的时候。 “竞争激烈”是指什么...
Golang基础笔记十六之反射
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记十六之反射 反射可以用于程序在运行时检查、修改自身类型和值,主要通过 reflect 包实现。 首先,我们提出一个需求,要打印出一个结构体...
Golang基础笔记十五之sync
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记十五之sync 这一篇笔记介绍 Golang 中的 sync 模块。 sync 包主要提供了基础的同步原语,比如互斥锁,读写锁,等待组等,用于解决并发编...
go学习笔记:atomic.AddInt32(&count, 1)中,count前为什么加&
原代码 func AtomicCounterDemo() { var count int32 var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.Add(1) go func() { defer wg.Done() for j := 0; j
Golang基础笔记十四之文件操作
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记十四之文件操作 这一篇笔记介绍 Golang 里文件的相关操作,主要用的库是 io。 以下是本篇笔记目录: 文件读取 文件写入 文件追加 os.Ope...
go学习笔记:s4 = append(s4[:2], append([]int{3}, s4[2:]…)…),append后面三个点是什么意思?
在 Go 语言中,append 后面的三个点 ... 是展开操作符(spread operator) 基本概念 ... 用于将切片展开为独立的元素,传递给函数或 append 函数。 代码: s4 = append(s4[:2], append([]int{3}...
Golang基础笔记十三之context
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记十三之context 在 Golang 里,context 包提供了很多比如传递截止时间、取消信号、传递数据等操作的标准方式,用于在跨 API 边界、进程和...
Golang基础笔记十二之defer、panic、error
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记十二之defer、panic、error 本篇笔记介绍一下 Golang 里 defer、panic 和 error 的相关概念和操作,以下是本篇笔记目录: defer panic e...