随机整数
fmt.Println(rand.Intn(100))
47
rand.Intn
方法可获得[0,n)区间内的随机整数。
随机浮点数
fmt.Println(rand.Float64())
0.4377141871869802
rand.Float64
方法可获得[0.0,1.0)区间内的随机浮点数。
指定范围的随机浮点数
fmt.Println((rand.Float64() * 5) + 5)
5.328185096087381
该方法可获得[5.0,10.0)区间内的随机浮点数。
随机数种子
s := rand.NewSource(time.Now().UnixNano())
r := rand.New(s)
fmt.Println(r.Intn(100))
13
注意,使用相同的随机数种子会生成相同的随机数序列,如下所示:
s1 := rand.NewSource(42)
r1 := rand.New(s1)
fmt.Println(r1.Intn(100), ",", r1.Intn(100), ",", r1.Intn(100), ",", r1.Intn(100))
s2 := rand.NewSource(42)
r2 := rand.New(s2)
fmt.Println(r2.Intn(100), ",", r2.Intn(100), ",", r2.Intn(100), ",", r2.Intn(100))
5 , 87 , 68 , 50
5 , 87 , 68 , 50
数字解析
f, _ := strconv.ParseFloat("1.234", 64)
fmt.Println(f)
1.234
i, _ := strconv.ParseInt("123", 0, 64)
fmt.Println(i)
123
d, _ := strconv.ParseInt("0x1c8", 0, 64)
fmt.Println(d)
456
u, _ := strconv.ParseUint("789", 0, 64)
fmt.Println(u)
789
k, _ := strconv.Atoi("135")
fmt.Println(k)
135
_, e := strconv.Atoi("wat")
fmt.Println(e)
strconv.Atoi: parsing “wat”: invalid syntax