golang if语句的逗号ok模式

"本文详细介绍了Golang编程中常见的",OK"用法,包括在函数返回错误检测、defer恢复panic、映射键值检查、类型断言、通道关闭检测以及政策存在性判断等场景的应用。通过实例展示了如何有效利用这一特性进行错误处理和条件判断。"
摘要由CSDN通过智能技术生成

我们在使用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("增加成功")
        }
    })
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值