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