in utils/type.go [8:35]
func ToInt(i interface{}, defaultVal int) int {
switch value := i.(type) {
case int:
return value
case float64:
return int(value)
case uint:
return int(value)
case int32:
return int(value)
case int64:
return int(value)
case string:
if val, err := strconv.Atoi(value); err == nil {
return val
} else {
return defaultVal
}
case json.Number:
if val, err := value.Int64(); err == nil {
return int(val)
} else {
return defaultVal
}
default:
return defaultVal
}
}