首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Go 学习笔记
Rayjun
创建于2021-05-16
订阅专栏
记录我的 Go 学习历程,欢迎一起交流~
等 26 人订阅
共21篇文章
创建于2021-05-16
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Go error 的四种处理方式
Go 的 error 处理一直是被人诟病的地方,但换个角度其实 Go 的 error 还是挺好用的,error 有两个很重要的特性: error 就是一个普通的值,处理起来没有额外的开销 error
关于调度器的一些思考
在前面 channel 的文章中,我们也花了很大的篇幅来说调度器,调度器是 Go 高效并发的关键。也是 goroutine 和 channel 工具的背后支撑。
Go channel,面试官会这样问
Go 在并发方面的表现很好,这也是 Go 的招牌。Go 在进行并发编程时,下面两个工具都会用到: goroutine:让多个任务并行,每个任务之间不相互影响 channel:负责 goroutine
nil,看这篇就够了
写过 Go 代码的人,肯定对下面的代码不陌生: Go 项目中这行代码会大量存在,这里可能隐藏着陷阱。 1. Go 中的 nil Go 中 nil 代表零值,表示什么都没有,其他语言中也有类似的设计,比
Context 和 struct
原文地址:https://go.dev/blog/context-and-structs 在很多 Go 的 API 中,特别是新的 API,函数或者方法的第一个参数通常是 context.Contex
Go的测试框架
Go 语言中自带了测试框架,在不引入外部包的情况下,也可以编写完整的测试。这篇文章来看一下Go 提供原生测试能力,及其不足之处,以及补充这些不足的方法。
Go 泛型初体验
在 Go1.17 中,千呼万唤的泛型终于出来了,但又没有完全出来。在 Go1.17 的发布文档中,并没有提到泛型,但是眼见的网友发现,泛型相关的代码其实已经合并了,只是没有默认启用。
container 包详解
Go 语言中有一个 container 包,如果只是看这个包名,可能很容易让人误解,但这个 container 和 Docker 之类的容器没有关系。
Go字符串拼接最佳实践
字符串是一个常见的数据类型,在 Go 语言在内的很多语言中,为了安全,都把字符串设计为不可变。每生成一个字符串都是在创建一个新的字符串,而不是在原有字符串的基础上修改。
使用 make 还是 new
在 Go 中初始化变量的时候,会用到 make 和 new,如果学习过其他的面向对象语言,比如 Java,可能就会对 new 的使用有点迷惑,Go 中的 new 有着完全不同的含义。
理解 defer、panic 和 recover
在 Go 语言中,有很多流程控制的语句,if、else 等等,这些流程控制的关键字在其他语言中也存在的但 Go 中还有几个特殊的流程控制关键字,defer、panic 和 recover。
如何在Go 服务中做链路追踪
使用 Go 语言开发微服务的时候,需要追踪每一个请求的访问链路,这块在 Go 中目前没有很好的解决方案。
一文入门 Go 的性能分析
Go 为了实现更高的并发,自己实现了用户态的调度器,称之为 GMP 模型,在上一篇文章中,我们已经简单分析了它的实现。
Goroutine 是如何运行的
在 Go 语言中,没有线程,只有 goroutine,这也是 Go 语言原生支持高并发的关键。 goroutine 是 Go 语言对协程的实现。goroutine 非常轻量级,一般只有几 Kb 的大小
Go 并发编程-共享变量
在之前的文章中,我们详细说了 Go 语言中 goroutine + channel 通过通信的方式来共享内存,从而实现并发编程。 但同时 Go 也提供了传统通过共享变量,也就是共享内存的方式来实现并发
一文看懂 Context
03-16-29-Context详解 Go 中有一个 Context 接口,配合 goroutine 使用,主要是用来协调 goroutine 的执行,但是比较难理解,这篇文章中来详细分析一下。
ServeMux详解
在 Go 语言中,创建一个 HTTP 服务很简单,只需要几行代码就可以创建一个可用的 HTTP 服务,这是因为 Go 原生帮我们实现了一个默认的 HTTP 服务,就是 ServeMux
Go http 包详解
Go 语言中的 http 包提供了创建 http 服务或者访问 http 服务所需要的能力,不需要额外的依赖。在这篇文章中,我们会介绍这些功能的使用,以及看一下 http 包的设计思路。 1. htt
Go并发编程-channel多路复用
在前面两篇文章中,已经详细的介绍了 goroutine 和 channel,它们是 Go 并发编程的基础。今天这篇文章会介绍 Go 并发编程中另一个重要的角色——多路复用。
Go 并发编程-channel 连接一切
在上一篇文章中,我们介绍了 Go 并发编程的基础—goroutine,同时也介绍 goroutine 的几种使用方式,但没有说明 goroutine 之间是如何通信的。
下一页