1
0

random.go 820 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package random
  2. import (
  3. "math/rand"
  4. )
  5. var numSeq [10]rune
  6. var lowerSeq [26]rune
  7. var upperSeq [26]rune
  8. var numLowerSeq [36]rune
  9. var numUpperSeq [36]rune
  10. var allSeq [62]rune
  11. func init() {
  12. for i := 0; i < 10; i++ {
  13. numSeq[i] = rune('0' + i)
  14. }
  15. for i := 0; i < 26; i++ {
  16. lowerSeq[i] = rune('a' + i)
  17. upperSeq[i] = rune('A' + i)
  18. }
  19. copy(numLowerSeq[:], numSeq[:])
  20. copy(numLowerSeq[len(numSeq):], lowerSeq[:])
  21. copy(numUpperSeq[:], numSeq[:])
  22. copy(numUpperSeq[len(numSeq):], upperSeq[:])
  23. copy(allSeq[:], numSeq[:])
  24. copy(allSeq[len(numSeq):], lowerSeq[:])
  25. copy(allSeq[len(numSeq)+len(lowerSeq):], upperSeq[:])
  26. }
  27. func Seq(n int) string {
  28. runes := make([]rune, n)
  29. for i := 0; i < n; i++ {
  30. runes[i] = allSeq[rand.Intn(len(allSeq))]
  31. }
  32. return string(runes)
  33. }
  34. func Num(n int) int {
  35. return rand.Intn(n)
  36. }