zzs.go 857 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * Copyright (c) 2000-2018, 达梦数据库有限公司.
  3. * All rights reserved.
  4. */
  5. package util
  6. const (
  7. LINE_SEPARATOR = "\n"
  8. )
  9. // 执行f并忽略panic
  10. func AbsorbPanic(f func()){
  11. defer func() {
  12. if p := recover(); p != nil {
  13. // TODO do something
  14. }
  15. }()
  16. f()
  17. }
  18. func SliceEquals(src []byte, dest []byte) bool {
  19. if len(src) != len(dest) {
  20. return false
  21. }
  22. for i, _ := range src {
  23. if src[i] != dest[i] {
  24. return false
  25. }
  26. }
  27. return true
  28. }
  29. // 获取两个数的最大公约数,由调用者确保m、n>=0;如果m或n为0,返回1
  30. func GCD(m int32, n int32) int32 {
  31. if m == 0 || n == 0 {
  32. return 1
  33. }
  34. r := m % n
  35. m = n
  36. n = r
  37. if r == 0 {
  38. return m
  39. } else {
  40. return GCD(m, n)
  41. }
  42. }
  43. // 返回切片中所有数的累加值
  44. func Sum(arr []int32) int32 {
  45. var sum int32 = 0
  46. for _, i := range arr {
  47. sum += i
  48. }
  49. return sum
  50. }