123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // Package random provides utilities for generating random strings and numbers.
- package random
- import (
- "math/rand"
- )
- var (
- numSeq [10]rune
- lowerSeq [26]rune
- upperSeq [26]rune
- numLowerSeq [36]rune
- numUpperSeq [36]rune
- allSeq [62]rune
- )
- // init initializes the character sequences used for random string generation.
- // It sets up arrays for numbers, lowercase letters, uppercase letters, and combinations.
- func init() {
- for i := 0; i < 10; i++ {
- numSeq[i] = rune('0' + i)
- }
- for i := 0; i < 26; i++ {
- lowerSeq[i] = rune('a' + i)
- upperSeq[i] = rune('A' + i)
- }
- copy(numLowerSeq[:], numSeq[:])
- copy(numLowerSeq[len(numSeq):], lowerSeq[:])
- copy(numUpperSeq[:], numSeq[:])
- copy(numUpperSeq[len(numSeq):], upperSeq[:])
- copy(allSeq[:], numSeq[:])
- copy(allSeq[len(numSeq):], lowerSeq[:])
- copy(allSeq[len(numSeq)+len(lowerSeq):], upperSeq[:])
- }
- // Seq generates a random string of length n containing alphanumeric characters (numbers, lowercase and uppercase letters).
- func Seq(n int) string {
- runes := make([]rune, n)
- for i := 0; i < n; i++ {
- runes[i] = allSeq[rand.Intn(len(allSeq))]
- }
- return string(runes)
- }
- // Num generates a random integer between 0 and n-1.
- func Num(n int) int {
- return rand.Intn(n)
- }
|