go 判定对象是否实现接口 进行 接口约束 (*interface{})(nil)
GO
写法很牛逼,第一看把老子都看蒙了。首先来理解var a *int = (*int)(nil)(*int)(nil) :意思是把 nil 类型 转换为 *int 类型var a *int :声明一个 a 变量,类型为 *int那么上面这个就不难理解吧实现 接口约束上面的场景一般没啥卵用,但如果把上面的 int 类型换成 接口类型,作用就多了。譬如,我们下面这个例子:判定 某个对象是否实现了某个接口package main
import "fmt"
// 定义一个借口
ty... ...
阅读全文
服务熔断 之GO实现 hystrix-go 和 kratos
概念原理 GO
hystrix-go熔断器中比较典型的实现就是 hystrix,Golang 也有对应的版本,我们先来看一下 hystrix-go 是怎么实现的案例先看一个使用案例,首先我们使用 gin 启动一个服务端,这个服务端主要是前 200ms 的请求都会返回 500,之后的请求都会返回 200func server() {
e := gin.Default()
e.GET("/ping", func(ctx *gin.Context) {
if time.Since(start) &l... ...
阅读全文
go get -u 私有仓库 不会更新版本问题
GO
如果是自己的私有仓库,在版本号设置没问题的情况下,请设置,否则 go get -u 不会更新go env -w GOPRIVATE=git.xiewo.net... ...
阅读全文