加载中...
文章
15
标签
41
分类
7
首页
归档
标签
分类
关于
柠芒技术博客
可选方案与技术选型
返回首页
首页
归档
标签
分类
关于
可选方案与技术选型
发表于
2022-01-16
|
更新于
2026-01-25
|
系统设计
分布式发号器
可选方案与技术选型
文章作者:
柠芒技术博客
文章链接:
https://jinfeijie.cn/post-20220116011900.html
版权声明:
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议。转载请注明来源
柠芒技术博客
!
系统设计
分布式系统
发号器
ID生成
高性能
架构设计
上一篇
Slice的初始化和扩容过程
切片和数组在go语言中都是非常常见的结构,很多刚开始使用go语言的开发者会混淆这两者的概念而留下不少隐藏的bug。本篇会从slice编译期、运行时来分析,以更好理解和掌握slice。 slice概述slice表示一个拥有相同数据类型的可变长度的序列。该序列通过一个较为简单的数据结构实现:https://github.com/golang/go/blob/master/src/runtime/slice.go#L15 12345type slice struct { array unsafe.Pointer len int cap int} 编译期逻辑 编译的整个过程另外开文章说,下面直接讲slice的编译过程。 感兴趣可以先看 src/cmd/compile/main.go 在slice的编译过程中,会调用NewSlice方法,该方法需传入类型为*Type的参数elem,并且返回一个*Type类型的结构体。 1234567891011121314151617181920// NewSlice returns the slice Type wi...
下一篇
Go抽象语法树(AST)实用指南 (二)
grade == “四(3)班” && age > 10 AST 抽象语法树在表达式解析上面也有不错的表现。通常在规则引擎场景可以得到充分的发挥。比如一段表达式 1grade == 四(3)班 && age > 10 这个表达式,对于人来说是非常容易理解的。年级是四(3)班,年纪大于10。 但是计算机来说,传入一段字符串表达式,理解起来可能并不是这么容易。 好在Golang提供了表达式解析的能力,我们可以通过查看解析后的数据,理解ast如果解析这串表达式。 解析表达式1234567891011121314151617181920212223242526272829303132333435 0 *ast.BinaryExpr { 1 . X: *ast.BinaryExpr { 2 . . X: *ast.Ident { 3 . . . NamePos: - 4 . . . Name: "grade" 5 . . . Obj: ...
柠芒技术博客
专注于复杂系统架构设计、AI Agent落地、Go语言开发、深度创业
文章
15
标签
41
分类
7
最新文章
搞定 Cloudflare Pages 优选 IP:从 522 报错到秒开的“偷梁换柱”避坑指南
2026-01-24
Singleflight:深入解析go缓存击穿方案
2024-01-01
设计一个几十万TPS的实时位置上报系统
2022-06-29
设计一个广告投放平台自动控盘的规则引擎系统
2022-06-29
Slice的初始化和扩容过程
2022-01-16