golang逗号模式
嘻嘻发布于2022-07-24
最后更新于2022年7月19日
浏览在golang中有一种逗号模式“,ok”,第一个参数是一个值或者nil,第二个参数是true/false或者一个错误error。在一个需要赋值的if条件语句中,使用这种模式去检测第二个参数值会让代码显得优雅简洁。
在函数返回时检测错误
// 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)
}