mirror of
https://github.com/ProudMuBai/GoFilm.git
synced 2026-02-08 17:54:48 +08:00
39 lines
900 B
Go
39 lines
900 B
Go
package param
|
|
|
|
import (
|
|
"reflect"
|
|
)
|
|
|
|
/*
|
|
简单参数处理
|
|
*/
|
|
|
|
// IsEmpty 判断各种基本类型是否为空
|
|
func IsEmpty(target any) bool {
|
|
switch target.(type) {
|
|
case int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64:
|
|
return target == reflect.Zero(reflect.TypeOf(target)).Interface()
|
|
case string:
|
|
return target == ""
|
|
case bool:
|
|
return target.(bool)
|
|
default:
|
|
return false
|
|
}
|
|
}
|
|
|
|
func IsEmptyRe[T ~int | ~uint | float32 | float64 | string | bool](target T) bool {
|
|
v := reflect.ValueOf(target)
|
|
switch v.Kind() {
|
|
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Float32,
|
|
reflect.Float64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
|
|
return v.Interface() == 0
|
|
case reflect.String:
|
|
return v.String() == ""
|
|
case reflect.Bool:
|
|
return v.Bool()
|
|
default:
|
|
return false
|
|
}
|
|
}
|