arrays.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package arrays
  2. import (
  3. )
  4. func StringsContains(array []string, val string) (index int) {
  5. index = ContainsString(array, val)
  6. return
  7. }
  8. // func IntsContains(array []int, val int) (index int) {
  9. // index = ContainsInt(array, val)
  10. // return
  11. // }
  12. // func FloatsContains(array []float64, val float64) (index int) {
  13. // index = ContainsFloat64(array, val)
  14. // return
  15. // }
  16. // []string deduplicate
  17. func StringsDeduplicate(array []string) []string {
  18. var arr = make([]string, 0)
  19. var m = make(map[string]bool)
  20. for _, d := range array {
  21. _, ok := m[d]
  22. if !ok {
  23. m[d] = true
  24. arr = append(arr, d)
  25. }
  26. }
  27. return arr
  28. }
  29. // []string equal
  30. func StringsEqual(a, b []string) bool {
  31. if len(a) != len(b) {
  32. return false
  33. }
  34. if (a == nil) != (b == nil) {
  35. return false
  36. }
  37. b = b[:len(a)]
  38. for i, v := range a {
  39. if v != b[i] {
  40. return false
  41. }
  42. }
  43. return true
  44. }
  45. // []int deduplicate
  46. func IntsDeduplicate(array []int) []int {
  47. var arr = make([]int, 0)
  48. var m = make(map[int]bool)
  49. for _, d := range array {
  50. _, ok := m[d]
  51. if !ok {
  52. m[d] = true
  53. arr = append(arr, d)
  54. }
  55. }
  56. return arr
  57. }
  58. // []int equal
  59. func IntsEqual(a, b []int) bool {
  60. if len(a) != len(b) {
  61. return false
  62. }
  63. if (a == nil) != (b == nil) {
  64. return false
  65. }
  66. b = b[:len(a)]
  67. for i, v := range a {
  68. if v != b[i] {
  69. return false
  70. }
  71. }
  72. return true
  73. }