string_array.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package array
  2. import (
  3. "github.com/druidcaesa/gotool/logs"
  4. "strconv"
  5. )
  6. type StrArray struct {
  7. logs logs.Logs
  8. }
  9. // StringToInt64 String array to int64 array
  10. func (sa *StrArray) StringToInt64(s []string) ([]int64, error) {
  11. int64s := make([]int64, len(s))
  12. for i, item := range s {
  13. parseInt, err := strconv.ParseInt(item, 10, 64)
  14. if err != nil {
  15. sa.logs.ErrorLog().Println(err.Error())
  16. return nil, err
  17. }
  18. int64s[i] = parseInt
  19. }
  20. return int64s, nil
  21. }
  22. // StringToInt32 String array to int32 array
  23. func (sa *StrArray) StringToInt32(s []string) ([]int32, error) {
  24. int32s := make([]int32, len(s))
  25. for i, item := range s {
  26. parseInt, err := strconv.ParseInt(item, 10, 32)
  27. if err != nil {
  28. sa.logs.ErrorLog().Println(err.Error())
  29. return nil, err
  30. }
  31. int32s[i] = int32(parseInt)
  32. }
  33. return int32s, nil
  34. }
  35. // ArrayDuplication Array deduplication String数组去重
  36. func (sa *StrArray) ArrayDuplication(arr []string) []string {
  37. var out []string
  38. tmp := make(map[string]byte)
  39. for _, v := range arr {
  40. tmplen := len(tmp)
  41. tmp[v] = 0
  42. if len(tmp) != tmplen {
  43. out = append(out, v)
  44. }
  45. }
  46. return out
  47. }