首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
golang基础
littleCat
创建于2024-03-12
订阅专栏
golang基础
暂无订阅
共38篇文章
创建于2024-03-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
GMP , stack
Gs, Ms, Ps A "G" is simply a goroutine. It's represented by type g. When a goroutine exits, its g ob
Timer 实现
为什么要使用堆这种结构?因为 Timer 都存在一个“到期时间”,为了判断当前时刻有哪些 Timer 到期,runtime 中采用了“四叉堆”的排序结构。这里,显然是要采用小顶堆,即堆顶元素 最小。如
context 实现
建议 context interface cancelCtx WithCancel propagateCancel 把当前context挂载到parent的children下面(找到了parent的i
race 实现
使用 实现 The race detector is integrated with the go tool chain. When the -race command-line flag is se
pprof
https://cloud.tencent.com/developer/article/1822613 剖析 当我们想仔细观察我们程序的运行速度的时候,最好的方法是性能剖析。剖析技术是基于程序执行期间
map实现
https://cloud.tencent.com/developer/article/1746966 Go map 的 hash 表中的基本单位是桶,每个桶最多存 8 个键值对,超了则会链接到额外的
gin
中间件用过吗? Middleware是Web的重要组成部分,中间件(通常)是一小段代码,它们接受一个请求,对其进行处理,每个中间件只处理一件事情,完成后将其传递给另一个中间件或最终处理程序,这样就做到
go faq
Is Go an object-oriented language? Yes and no. Although Go has types and methods and allows an objec
反射 / interface / reflect 实现
Go语言提供了一种机制,能够在运行时更新变量和检查它们的值、调用它们的方法和它们支持的内在操作,而不需要在编译时就知道这些变量的具体类型。这种机制被称为反射。反射也可以让我们将类型本身作为第一类的值类
Test / Benchmark
go test go test命令是一个按照一定的约定和组织来测试代码的程序。在包目录内,所有以_test.go为后缀名的源文件在执行go build时不会被构建成包的一部分,它们是go test测试
go mod, GOPATH, GOROOT
当我们修改了一个源文件,我们必须重新编译该源文件对应的包和所有依赖该包的其他包。即使是从头构建,Go语言编译器的编译速度也明显快于其它编译语言。Go语言的闪电般的编译速度主要得益于三个语言特性。第一点
基于共享变量的并发
包级别的导出函数一般情况下都是并发安全的。由于package级的变量没法被限制在单一的gorouine,所以修改这些变量“必须”使用互斥条件 一个函数在并发调用时没法工作的原因太多了,比如死锁(dea
Channels select
Go语言中的并发程序可以用两种手段来实现。 1.goroutine和channel,其支持“顺序通信进程”(communicating sequential processes)或被简称为CSP。CS
interface 类型转换 类型断言
接口类型 接口类型具体描述了一系列方法的集合,一个实现了这些方法的具体类型是这个接口类型的实例。 有些接口类型通过组合已有的接口来定义 一个类型如果拥有一个接口需要的所有方法,那么这个类型就实现了这个
方法
基于指针对象的方法 当接受者变量本身比较大时,我们就可以用其指针而不是对象来声明方法 在现实的程序里,一般会约定如果Point这个类有一个指针作为接收器的方法,那么所有Point的方法都必须有一个指针
golang函数
函数的类型被称为函数的签名。如果两个函数形式参数列表和返回值列表中的变量类型一一对应,那么这两个函数被认为有相同的类型或签名。形参和返回值的变量名不影响函数签名, 在函数体中,函数的形参作为局部变量,
golang 复合数据类型
数组 在数组字面值中,如果在数组的长度位置出现的是“...”省略号,则表示数组的长度是根据初始化值的个数来计算 数组的长度是数组类型的一个组成部分,因此[3]int和[4]int是两种不同的数组类型。
golang 基础数据类型
// Sizeof takes an expression x of any type and returns the size in bytes // of a hypothetical varia