golang if语句的逗号ok模式

我们在使用Golang编程时,经常会使用到Golang比较特殊的一种写法,即:", OK"

使用场景:在一个表达式返回2个参数的时候使用,第一个参数是一个值或者nil,第二个参数是true/false或者一个错误error

1、在函数返回时检测到出错

func SomeFunc() error {if value, err := pack1.Func1(param1); err != nil {return err}return nil
} 

2、用于通过defer使程序从panic中恢复执行

defer func() {if err := recover(); err != nil {log.Printf("run time panic: %v", err)}
}()

3、检测映射中是否存在一个键值:key1在映射map1中是否有值?

if value, isPresent = map1[key1]; isPresent {Process(value)
}

4、用于检测一个接口类型变量varI是否包含了类型T:类型断言

 if value, ok := varI.(T); ok {Process(value)
}

5、用于检测一个通道ch是否关闭

for {if input, open := <-ch; !open {break // 通道是关闭的}Process(input)
}

6、检测Policy是否存在

//从DB加载策略e.LoadPolicy()//获取router路由对象r := gin.New()r.POST("/api/v1/add", func(c *gin.Context) {fmt.Println("增加Policy")if ok, _ := e.AddPolicy("admin", "/api/v1/hello", "GET"); !ok {fmt.Println("Policy已经存在")} else {fmt.Println("增加成功")}})


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部