首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Go语言学习笔记
柠檬树上柠檬果
创建于2024-04-26
订阅专栏
Go语言学习笔记,我会对照着c++来比较两种语言的异同点
等 3 人订阅
共18篇文章
创建于2024-04-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
七天系列-gee
gee 简单来说,gee就是在net库的基础上实现一个更加强大的web框架。 net/http库的基本使用 以上是使用ne
go语言的context源码和errgroup
context概念 我们经常会遇到主协程与子协程之间存在控制、协同、取消的需求,例如: 主协程需要等待全部子协程完成:即子协程怎样通知主协程。 在使用流水线增加数据计算吞吐量的场景中:对于一个输入,该
字节开源库gopkg——gopool协程池
sync.Pool sync.Pool是一个并发安全的缓存池,可以并发且安全的存储、获取对象。常用于对象实例创建会消耗较多资源的场景。但它并不严格具有缓存作用,因为我们无法控制缓存对象的释放,对于使用
MESI和go内存一致性模型
CPU多级缓存 现代CPU为了缓解CPU速度和内存速度的不匹配,采用了CPU缓存来加速数据的读取,避免直接访问内存。而缓存集成有以下三种方式。 集中式缓存:一个缓存和所有处理器直接相连,多个核共享这一
go并发编程(一)
channel 通道是go提供给开发者用于goroutine之间通信的一种高级数据结构。通道有带缓冲的和不带缓冲的,我们可以利用通道实现不同goroutine之间的同步和互斥操作。但本质上,gorou
go语言的一些陷阱和技巧
持续更新... for下标循环和range 对于slice,使用for-range循环有两种形式 前两种方式几乎没有区别,需要注意的是:for-range迭代出的值是通过值拷贝的形式,对它进行修改无法
深入理解go语言中的string
string的基本组成 在go语言中,string的组成其实和slice非常相似,只不过string是不可变的。 所以它的内部结构相比slice少了个cap。我们可以观察下面的小例子: 运行代码会发现
go语言闭包和for循环
闭包 我们知道在GO语言中,函数是一等公民。它既可以作为参数,也可以作为函数的返回值返回。闭包通俗地说就是可以访问外部函数内部变量的函数。它通过存储相应的函数和捕获的变量来实现。 在讲闭包之前,我们先
go语言的interface详解
在之前的一篇文章中go语言的反射和泛型中提到过,我们可以使用反射来实现多态。反射能实现本质上是编译器同时记录的实际的数据和类型信息。在go语言中,接口是方法的集合,我们通过实现一个集合中的方法就可以隐
go语言的error,panic/recover和defer详解
error error 在 Go 中其实是一个普通的接口。它不仅保存着错误的信息,还提供了一系列的方式供开发者使用。因此开发者可以自行拓展,嵌套,封装新的 error ,为项目提供自定义错误模块。我们
GMP调度模型
协程 协程的概念已经出来很久了。但相比进程/线程,它可能没有那么耳熟。在学习一些新概念前,我喜欢用一些我熟知的概念去类比学习。我们可以把协程和线程以及函数去对比: 协程和函数对比,可以把协程理解为保存
go语言中基本数据结构的实现
slice slice中文名为切片,它是一个可以扩容的能够容纳不同类型的动态数组。如果你和我一样从C++转过来的话,基本可以把它理解为C++中的vector。 首先slice在GO语言中是引用类型,就
细数c++/go实现多态的几种方式
多态是面向对象编程中的一个核心概念,它允许我们以统一的方式处理不同类型的对象,同时还能保持各个类型特有的行为。 换句话说:对于一个函数/方法,它会根据传入的对象类型不同,做出不同的动作就是多态。多态本
《Go语言圣经》——反射和泛型
## 反射是什么? 反射其实是一种动态的获取对象的类型和方法。有的时候我们希望通过抽象出一个能够接受多个类型的函数/方法来减少我们的代码量。就好比c++中的泛型,例如实现一个`add`函数,这个函数可
《go语言圣经》——测试
测试函数 每个测试函数必须导入testing包 测试函数的名字必须以Test开头,可选的后缀名字必须以大写字母开头 其中的t参数用于报告测试失败和附加的日志信息 对于word包下的函数: 我们定义wo
《GO语言圣经》——基于共享变量的并发
互斥锁 goroutine间不仅可以使用channel来通信,同样的也可以使用锁保护共享资源来实现过个goroutine的通信。例如下面的程序由于没有锁的保护,最后输出的值并不为0: 当给代码中对于临
《Go语言圣经》——Goroutines和Channels
Goroutines 在go语言中,一个并发的执行单元叫做一个goroutine,也就是协程。理解协程我们可以从两个角度去比较思考。一个是线程,和线程相比,协程可以看作是用户态轻量级线程。它在用户态实
《Go语言圣经》——6. 接口
接口的目的是什么? 在谈论go语言的接口之前,我们需要搞清楚为什么要有接口?先说结论:接口的目的还是复用代码,避免代码膨胀。 说到接口,不得不提到多态。简单来说,多态度就是:对于某个行为,我们希望不同