2018年

go compile 支持 _ 作为零值

go compile 支持 _ 作为零值

起因

很久以前就有类似的 proposal, 并且官方也有回复, 以下是链接:

个人认为官方还是太过于保守了, 至少目前 go1 的语法下, 在 return 表达式中引入 _ 用于返回错误上还是有一些编写上的方便的(小声 bb).


DIY compile

我的 go 版本 1.10.2, 修改 $GOROOT/src/cmd/compile/internal/gc 下 3 个文件:

  • 增加 hackgc.go
  • 修改 subr.go
  • 修改 typecheck.go

1. 增加 hackgc.go:

...

- 阅读全文 -

grpc 一致性 hash 负载均衡

grpc 一致性 hash 负载均衡

go-grpc 库只提供了一个默认的轮询负载均衡器 grpc.RoundRobin,通过实现 grpc.Balancer 可以实现自定义规则的 Balancer,所以实现一个一致性 hash 的 grpc.Balancer。

Implement

这篇文章的基础上,增加 grpclb 包实现一致性 hash 负载均衡器。

...

- 阅读全文 -