广告涉及的mq都放这里
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 
 

27 Zeilen
729 B

  1. package utils
  2. import "reflect"
  3. // 检验一个值是否为空
  4. func Empty(val interface{}) bool {
  5. v := reflect.ValueOf(val)
  6. switch v.Kind() {
  7. case reflect.String, reflect.Array:
  8. return v.Len() == 0
  9. case reflect.Map, reflect.Slice:
  10. return v.Len() == 0 || v.IsNil()
  11. case reflect.Bool:
  12. return !v.Bool()
  13. case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
  14. return v.Int() == 0
  15. case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
  16. return v.Uint() == 0
  17. case reflect.Float32, reflect.Float64:
  18. return v.Float() == 0
  19. case reflect.Interface, reflect.Ptr:
  20. return v.IsNil()
  21. }
  22. return reflect.DeepEqual(val, reflect.Zero(v.Type()).Interface())
  23. }