utilities.go 732 B

12345678910111213141516171819202122232425262728293031323334
  1. package door
  2. import (
  3. "strconv"
  4. "strings"
  5. )
  6. func ArrayDelete[T any](stack *[]T, pos int) (T, bool) {
  7. var result T
  8. /*
  9. https://stackoverflow.com/questions/33834742/remove-and-adding-elements-to-array-in-go-lang
  10. https://github.com/golang/go/wiki/SliceTricks
  11. */
  12. if pos < 0 || pos > len(*stack) {
  13. return result, false
  14. }
  15. result = (*stack)[pos]
  16. copy((*stack)[pos:], (*stack)[pos+1:])
  17. // var temp T
  18. // (*stack)[len(*stack)-1] = temp
  19. *stack = (*stack)[:len(*stack)-1]
  20. return result, true
  21. }
  22. func SplitToInt(input string, sep string) []int {
  23. var result []int
  24. for _, number := range strings.Split(input, sep) {
  25. v, err := strconv.Atoi(number)
  26. if err == nil {
  27. result = append(result, v)
  28. }
  29. }
  30. return result
  31. }