// Package convertx provides type conversion helpers with default-value // fallback, built on top of gconv. // // Note: gconv silently returns the zero value when conversion fails, so the // helpers here only fall back to the default for nil / blank-string inputs. // Pass pre-validated data when strict conversion is required. package convertx import ( "strings" "github.com/gogf/gf/v2/util/gconv" ) // ToInt converts v to int, returning def when v is nil or a blank string. func ToInt(v any, def int) int { if isEmpty(v) { return def } return gconv.Int(v) } // ToInt64 converts v to int64, returning def when v is nil or a blank string. func ToInt64(v any, def int64) int64 { if isEmpty(v) { return def } return gconv.Int64(v) } // ToFloat64 converts v to float64, returning def when v is nil or a blank string. func ToFloat64(v any, def float64) float64 { if isEmpty(v) { return def } return gconv.Float64(v) } // ToString converts v to string, returning def when v is nil. func ToString(v any, def string) string { if v == nil { return def } return gconv.String(v) } // ToBool converts v to bool, returning def when v is nil or a blank string. func ToBool(v any, def bool) bool { if isEmpty(v) { return def } return gconv.Bool(v) } // isEmpty reports whether v is nil or a blank string. func isEmpty(v any) bool { if v == nil { return true } if s, ok := v.(string); ok { return strings.TrimSpace(s) == "" } return false }