contains.go 739 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package utils
  2. import "reflect"
  3. func Contains(a interface{}, b interface{}) bool {
  4. if reflect.ValueOf(a).Len() == 0 {
  5. return false
  6. }
  7. if _, ok := b.(int); ok {
  8. if tempB, ok := a.([]int); ok {
  9. for _, v := range tempB {
  10. if b == v {
  11. return true
  12. }
  13. }
  14. }
  15. }
  16. if _, ok := b.(uint); ok {
  17. if tempB, ok := a.([]uint); ok {
  18. for _, v := range tempB {
  19. if b == v {
  20. return true
  21. }
  22. }
  23. }
  24. }
  25. if _, ok := b.(float32); ok {
  26. if tempB, ok := a.([]float32); ok {
  27. for _, v := range tempB {
  28. if b == v {
  29. return true
  30. }
  31. }
  32. }
  33. }
  34. if _, ok := b.(string); ok {
  35. if tempB, ok := a.([]string); ok {
  36. for _, v := range tempB {
  37. if b == v {
  38. return true
  39. }
  40. }
  41. }
  42. }
  43. return false
  44. }