生成指定位数的随机数:
代码如下:
package main
import (
"fmt"
"math/rand"
)
func CreateCaptcha() string {
return fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(1000000))
}
func main(){
fmt.Println(CreateCaptcha())
}
Now() Time 获取当前时间,返回Time类型
输出:2019-09-03 20:58:38.473422 +0800 CST m=+0.000168620
Unix() int64 返回时间戳,自从1970年1月1号到现在
输出:1567515533
UnixNano() int64 返回时间戳.包含纳秒
输出:1567515575893470000
Int31n(1000000) 产生0到1000000之间的随机数,返回值为int32,该类函数还有Int63()等等,用来生成相应数据类型的随机数
NewSource返回一个以给定值播种的新随机源。
New返回一个新的Rand,它使用src(传入的参数)中的随机值生成其他随机值。
位数可以通过格式化输出进行调整,如把代码中的"%06v"改为"%08v"
生成随机字符串:
代码如下:
package problem
import (