数据库实现
以mysql作为例子,使用GORM
TAG_COLLECTION //
共有 16 篇笔记使用了这个 Tag。
以mysql作为例子,使用GORM
在Go这边比较方便的ORM(对象关系映射)库吧。
函数显式返回 error - 如果有错误就返回错误 - 如果没有错误就返回nil
方便,性能不错,挺好
哈希表,平均 O(1) 查询,在 Golang 中值得注意 —— 未同步的并发读写不安全
结合一点所学,使用golang做后端实现多用户聊天室 (WebSocket 聊天服务)
Context(上下文),可以理解为一种协调 Go 协程的东西 —— 我们可以创建、运行一个 Go 协程,缺乏一种传递取消信号和截止时间的机制,便引入了 Context。
select用于监听多个channel
Golang 推荐组合而不是继承。
本质上是用于等待一组任务完成的计数同步原语
工作池,一种并发设计,其中有两个主要概念 - 工人:干工作的工人 - 工作:分配的任务
基准测试,其文件命名与存放和测试文件一致。
defer 英文释义为“延迟”,有点意思,使用 defer 注册一个函数调用,使其在包含它的函数即将返回时执行
- G:Goroutine,Go协程 - P:Processor,逻辑处理器 - M:Machine,操作系统线程
通道(Channel)用于协程之间的数据通信,通道操作自身可安全地并发使用,并为对应的发送和接收提供同步关系,但不会自动消除其他共享状态的数据竞态。通道本质上是一个队列(FIFO)
Golang 单元测试的书写 ——