compare.go 637 B

123456789101112131415161718192021222324
  1. package cmp
  2. // OrderedNumbers 支持的有序数值类型集合
  3. type OrderedNumbers interface {
  4. ~int | ~int8 | ~int16 | ~int32 | ~int64 |
  5. ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
  6. ~float32 | ~float64
  7. }
  8. // CompareOrdered 通用比较,返回 -1/0/1
  9. func CompareOrdered[T OrderedNumbers](a, b T) int {
  10. if a < b {
  11. return -1
  12. }
  13. if a > b {
  14. return 1
  15. }
  16. return 0
  17. }
  18. // 方便函数(可按需增减)
  19. func CompareInt32(a, b int32) int { return CompareOrdered(a, b) }
  20. func CompareInt64(a, b int64) int { return CompareOrdered(a, b) }
  21. func CompareFloat64(a, b float64) int { return CompareOrdered(a, b) }