golang逗号模式

golang中有一种逗号模式“,ok”,第一个参数是一个值或者nil,第二个参数是true/false或者一个错误error。在一个需要赋值的if条件语句中,使用这种模式去检测第二个参数值会让代码显得优雅简洁。

ifok

在函数返回时检测错误

// os.Open(file) strconv.Atoi(str)
value, err := pack1.Func1(param1)

if err != nil {
    fmt.Printf(“Error %s in pack1.Func1 with parameter %v”, err.Error(), param1)
    return err
}

检测映射中是否存在一个键值

if value, isPresent = map1[key1]; isPresent {
        Process(value)
}
// key1不存在
…

检测一个接口类型变量varI是否包含了类型T

if value, ok := varI.(T); ok {
    Process(value)
}
// 接口类型varI没有包含类型T

检测一个通道ch是否关闭

 for {
        if input, open := <-ch; !open {
            break // 通道是关闭的
        }
        Process(input)
    }
golang sort底层排序
golang内存逃逸
标签:

发表我的评论

电子邮件地址不会被公开。 必填项已用*标注

3 + 11 =

ajax-loader