utilities.go 472 B

123456789101112131415161718
  1. package door
  2. func ArrayDelete[T any](stack *[]T, pos int) (T, bool) {
  3. var result T
  4. /*
  5. https://stackoverflow.com/questions/33834742/remove-and-adding-elements-to-array-in-go-lang
  6. https://github.com/golang/go/wiki/SliceTricks
  7. */
  8. if pos < 0 || pos > len(*stack) {
  9. return result, false
  10. }
  11. result = (*stack)[pos]
  12. copy((*stack)[pos:], (*stack)[pos+1:])
  13. // var temp T
  14. // (*stack)[len(*stack)-1] = temp
  15. *stack = (*stack)[:len(*stack)-1]
  16. return result, true
  17. }