go-randomstring/main.go

32 lines
629 B
Go

package randomstring
import (
"math/rand"
"time"
)
func init() {
rand.Seed(time.Now().UnixNano())
}
func Gen(length int, lower bool, upper bool, num bool) string {
r := [3]string{"abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "1234567890",}
chars := []rune("")
if lower {
chars = []rune(string(chars) + r[0])
}
if upper {
chars = []rune(string(chars) + r[1])
}
if num {
chars = []rune(string(chars) + r[2])
}
str := make([]rune, length)
for i := range str {
str[i] = chars[rand.Intn(len(chars))]
}
return string(str)
}