改了一下错误,编译通过。
package main import ( "flag" "fmt" "math/rand" "time" ) var pwdCount *int = flag.Int("n", 10, "How many password") var pwdLength *int = flag.Int("l", 20, "How long a password") var pwdCodes = [...]byte{ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '`', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '[', ']', '\\', ';', '\'', ',', '.', '/', '{', '}', '|', ':', '"', '<', '>', '?', } func main() { flag.Parse() t := time.Now() var r *rand.Rand = rand.New(rand.NewSource(int64(t.Nanosecond()))) for i := 0; i < *pwdCount; i++ { var pwd []byte = make([]byte, *pwdLength) for j := 0; j < *pwdLength; j++ { index := r.Int() % len(pwdCodes) pwd[j] = pwdCodes[index] } fmt.Printf("%s\n", string(pwd)) } }运行结果:
(3*c{G>o3LHKy(b2I*b* -!~{5V4mVesh*SkwLpYx ee{**_{jk^e#p|d7Te@5 nO@Y(Ir.,9=0Xf0T_^,U A5TIuBK)|+uq0&qc\OX% hkSs>D.C?#}6eOmXck]j 8o$mf9yr%Wsr[>\\>cHo nV%BBS~/^\e${kdJ1:o= H[M)|1jKpM\K*pbfJY\% !YK?f6oRGFMJYL]o$vYM
func (t Time) Nanosecond() int在t确定的秒数内,Nanosecond返回此秒数中已走过的nanosecond,范围在 [0, 999999999]之间。