github.com/best4tires/kit@v1.0.5/convert/string.go (about) 1 package convert 2 3 import ( 4 "database/sql" 5 "fmt" 6 ) 7 8 func ToString(v any) string { 9 if str, ok := v.(fmt.Stringer); ok { 10 return str.String() 11 } 12 13 switch v := v.(type) { 14 case sql.NullString: 15 return v.String 16 case sql.NullInt64: 17 return ToString(v.Int64) 18 case sql.NullInt32: 19 return ToString(v.Int32) 20 case sql.NullInt16: 21 return ToString(v.Int16) 22 case sql.NullFloat64: 23 return ToString(v.Float64) 24 case sql.NullBool: 25 return ToString(v.Bool) 26 case sql.NullTime: 27 return ToString(v.Time) 28 case *sql.NullString: 29 return v.String 30 case *sql.NullInt64: 31 return ToString(v.Int64) 32 case *sql.NullInt32: 33 return ToString(v.Int32) 34 case *sql.NullInt16: 35 return ToString(v.Int16) 36 case *sql.NullFloat64: 37 return ToString(v.Float64) 38 case *sql.NullBool: 39 return ToString(v.Bool) 40 case *sql.NullTime: 41 return ToString(v.Time) 42 default: 43 return fmt.Sprintf("%v", v) 44 } 45 }