加载中
为什么不建议在 go 中使用“继承"?

TL;DR go 没有虚函数,而 java 函数默认就是虚函数,它会通过动态绑定找到实际应该执行的函数。 严格的说,go 没有继承。我们使用结构体嵌套的方式实现的是一种“伪继承”。 go vs java 我们...

08/28 15:17
29
VSCode 扩展入门,类型转换代码补全的实现(完整版)

项目组使用了 protobuf 作为数据协议,其好处不用多说。可是由于 go 默认数字类型是 int,且 go 属于强类型语言,切换类型就成了家常便饭。 一般来说,切换类型的步骤包括: 选中数字部分。 ...

03/28 00:40
160
VSCode 扩展入门,后缀代码补全的实现

我们项目组使用了 protobuf 作为传输协议,其好处不用多说。可是由于 go 默认数字类型是 int,且 go 属于强类型语言,切换类型就成了家常便饭。 一般来说,切换类型的步骤不外乎: 选中数字部...

02/28 05:41
1.4K
如何让测试同学理解并发锁

有一天,一个叫做 hulk 的小伙子,挨了一刀,减少了 10 点生命值。 如果不考虑时间地点,不考虑刀子的来源(当然是我),上面这句话可以表现为下图。 其中 get 表示读数据,set 表示写数据,...

02/07 18:58
3.8K
"b = &boy{}" vs "*b = boy{}" 谁不讲武德?golang 逃逸分析入门

背景 最近想要将 protobuf 变量和之前设计的数据对象整合起来,维护在内存中,以减少内存申请和 GC 的性能损耗。 feature or bug,gogoproto 解码疑惑 由于 gogoproto 在 unmarshal 时不保证...

2020/12/19 20:22
3.2K
golang slice append 总结

var r *reward var rs []*reward // [] 0 0 rs = append(rs, nil...) // [] 0 0 rs = append(rs, nil) // [<nil>] 1 1 rs = append(rs, r) ......

2020/07/26 03:37
254
wsl & Windows Termianl & expect & oathtool 实现更便捷的 xshell 体验

wsl & Windows Termianl & expect & oathtool 实现更便捷的 xshell 体验 1. wsl 1.1 安装 wsl 的发行版不限。具体的安装教程网上有很多,这里不多说。 笔者使用的发行版为 yuk7/ArchWSL。 2....

2020/05/30 19:51
2K
expect 实现类似 xshell 的脚本登录

xshell 免费版本只支持 4 个窗口,且用 xshell 打开的终端在某些情况下会失去快捷键支持(例如 command+backspace)。决定在 Linux 上寻找替代方法,偶然在 v2ex 上看到 expect 命令,它的语...

2020/05/06 21:16
815
Pika `get` vs. `mget` Benchmark

Background System Info .. root@p1gd0g .PLTJ. OS: CentOS 6.9 Final <><><><> Kernel: x86_64 ......

Redis get vs. mget Benchmark

Redis get vs. mget Benchmark 0. Background Scripts #!/bin/bash key="testkey" value="testvalue" int=0 while (($int <= 1024)); do echo -e $key$int $value redis-cli set $key$int $v...

2020/04/14 18:05
1.4K
Prometheus & Grafana 初探

拿到一个新需求,通过 Prometheus & Grafana 监控接口。 有点晚了,长话短说,早点回家。 整合 Prometheus 到 go 项目中 可以参考官方示例。 重点只有这一句,表示记录一个值。对于我们来说就...

2020/01/03 00:09
143
如何利用 pprof 查询 go 内存占用

最近领导看到某个服务的内存占用很高,吩咐我查一下是啥问题。 前提 服务引用了 pprof 包 import ( _ "runtime/pprof" ) 监听了 http 端口 err := http.ListenAndServe(fmt.Sprintf(":%d", ...

2019/12/24 14:14
8K
golang context 的一个小坑

项目最近几个版本开始使用 context 包,主要用于透传参数。由于不够熟悉 context,我在优化代码时遇到了这样的问题。 func main() { ctx := context.WithValue(context.Background(), true,...

2019/11/12 17:55
997
如何将 google/pprof 集成在已有服务中?

上周接到领导给的研发需求,写一个监控服务 monitor server,用于分析 etcd 中注册的服务的状态。项目中的大多数服务都已经引入了 pprof 库,想要查看这些服务的 /debug/pprof 只需要走一层代...

2019/11/04 17:31
639
golang 传指针的一个小坑

记录一个小问题,直接上代码。 type hello struct { world string } f := func(test *hello) {   fmt.Printf("%p\n", test)   // 0xc000012ba0   test = nil } test := &hello{world: "world"}...

Go
2019/10/26 22:38
102
如何用 redis-cli 直接插入 utf-8 字符?

如果使用 golang 间接向 redis 中插入一个 utf-8 字符,例如 “Ю”,通过 redis-cli 取出的字符是: 127.0.0.1:6379> get test "\u042e" 可是如果通过 redis-cli 插入这个字符: 127.0.0.1:...

2019/10/18 14:30
386
Unity Editor + tolua 在 Linux 下的 runtime 问题

迫于 Unity 总是在 Windows 下崩溃,并直接导致系统重启(估计是内存泄漏),新买了一台笔记本。(终于可以在 Linux 桌面上进行开发啦,爽~ 电脑是华为新出的 16.1 寸第三方 Linux 版,官方美...

对于 shadowed err 的初步整理

作为一个 golang 新手,时常遇到一个编译报错: err is shadowed during return 比如说下面这段代码: func fun() (err error) { if true { x, err := makeErr() if err != nil { return } ...

Go
2019/10/15 13:34
551
gitlab 代码消失之谜

本周遇到了一件诡异的事,具体的表现为: 某分支存在两个连续的 comit:4afc75e7 和 f17079a7。 第一个 comit 为某文件增加了几行代码: 而第二个 comit 继续增加了一些代码: 有趣的地方是,...

2019/09/29 22:13
2.8K

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部