About GetOrElse
zhuxubin01 opened this issue · comments
朱旭斌 commented
I think GetOrElse's implementation should like this,in actuality,the most cases want to set default value when input is zero value
func GetOrElse(v interface{}, def interface{}) interface{} {
if v == nil {
return def
}
val := reflect.ValueOf(v)
if val.Kind() == reflect.Ptr {
val = val.Elem()
}
if val.IsZero() {
return def
} else if val.Kind() != reflect.Ptr {
return v
}
return val.Elem().Interface()
}
Flo commented
send a PR to review.