程序员
文章平均质量分 83
更加简单的看问题、没有特别高深的学问,只是不断地把这份熟练打磨的更熟练
i-neojos
古之成大事者,不惟有超世之才,亦必有坚忍不拔之志
展开
-
go 中 string 并发写导致的 panic
按照旧的数据结构来构造变量,Len 的部分设置为 16,Data 所指的内存数据设置为 nil,把结构体的内存位置和字符串的内存对应起来,再通过 unsafe 进行类型强转。方法,这是一个高层次的封装,减少直接操作指针的需求,同时仍然保留了灵活性和性能。: 通过提供高层次的接口,开发者不再需要手动操作指针,这大大降低了出错的风险以及潜在的安全漏洞。: 封装在方法内部,可以内建一些基本的错误检查和约束,进一步提升代码的安全性和健壮性。结构体,这是为了提供更安全和简洁的字符串操作方式。原创 2024-08-03 12:53:10 · 577 阅读 · 0 评论 -
golang channel 用法
从如何判断 channel 被关闭说起,可以考虑通过使用多重返回值的方式来进行判断,比如执行下面的代码。x, ok := <-ch我见过有些书上确实提到过这种方式,但让我疑惑的地方在于:如果这种判断方式可行的话,channel 中不就被莫名其妙的少了一个数据吗?var ch chan int = make(chan int, 2)ch <- 1ch <- 2close(ch)// 第一次读f, ok := <-chfmt.Printf("ok is %t, va原创 2020-09-30 00:24:16 · 1399 阅读 · 0 评论 -
编辑器 goland 和 visual studio code
使用 visual studio code 编译器进行 go 语言开发,对比安装常用的 go 插件,满足我们日常开发验证的小需求原创 2024-07-09 19:51:26 · 314 阅读 · 0 评论 -
cobra 命令行工具集
主要解释 cobra 三方库的使用,快速创建命令行工具,类比 grep、less 这样的指令。还会有很大的篇幅来介绍接收控制台命令行输入,因为控制台本身存在存在一些限制或者说模式的影响,会导致单行文本的输入受限。原创 2024-06-16 11:40:35 · 397 阅读 · 0 评论 -
Uber H3 index 地图索引思考
H3 是 uber 设计的六边形空间索引,go 语言操作包是,可以通过经纬度获取所在的 h3 六边形边界,每个经纬度对应的六边形都是确定的,每个六边形唯一对应了一个 h3index。在业务开发中,我们可以通过 h3index 来对地理空间中的对象做聚合,本质还是将经纬度查询转换成了 h3index 的查询。原创 2023-03-25 13:24:32 · 4141 阅读 · 2 评论 -
Graphviz 作图画图工具
在日常工作中,我经常会想,有没有一个工具可以将我们项目代码结构脉络给清晰的展示出来,直白点就是函数的调用关系。这样我就可以全局查看目标函数究竟在哪些场景被调用了。「go pprof」好像就具备这样的能力,但它其实是依赖采样的,并不能完全表示项目的全貌。按照这个设想,我们做了如下调查。原创 2023-10-09 17:15:09 · 1107 阅读 · 0 评论