Golang 如何获取Int31n类型的随机数

Golang 如何获取Int31n类型的随机数

Go语言通过math/rand包提供内置支持,用于生成指定类型的随机数。此包实现了伪随机数生成器。这些随机数由一个源产生,并且每次运行程序时该源会产生确定性值序列。如果您需要随机数用于安全敏感的工作,请使用crypto/rand包。

您可以使用math/rand包中提供的Int31n()函数从默认源生成31位整数n的int32型的非负伪随机数[0,n)。因此,您需要使用import关键字将math/rand包添加到您的程序中,以访问Int31()函数。如果n的值为<= 0,此方法将引发panic。

语法:

func Int31n(n int32) int32

让我们通过以下示例讨论这个概念:

示例1:

// Golang程序,演示
// 如何获取随机数
package main
  
import (
    "fmt"
    "math/rand"
)
  
// 主函数
func main() {
  
    // 使用Int31n()函数查找int31n类型的随机数
    res_1 := rand.Int31n(2)
    res_2 := rand.Int31n(4)
    res_3 := rand.Int31n(1)
  
    // 显示结果
    fmt.Println("随机数1:", res_1)
    fmt.Println("随机数2:", res_2)
    fmt.Println("随机数3:", res_3)
} 

输出:

随机数1:1
随机数2:3
随机数3:0

示例2:

// Golang程序,演示
// 如何获取随机数
package main
  
import (
    "fmt"
    "math/rand"
)
  
// 主函数
func main() {
  
    // 如果此函数的值为0或小于零,则将引发panic
    res_1 := rand.Int31n(0)
    res_2 := rand.Int31n(-1)
  
    // 显示结果
    fmt.Println("随机数1:", res_1)
    fmt.Println("随机数2:", res_2)
  
} 

输出:

panic: invalid argument to Int31n 

goroutine 1 [running]:   
math/rand.(*Rand).Int31n(0x43e280, 0x0, 0x43e280, 0x460000)   
/usr/local/go/src/math/rand/rand.go:128 +0x180   
math/rand.Int31n(…)   
/usr/local/go/src/math/rand/rand.go:324   
main.main()   
/tmp/sandbox269134149/prog.go:16 +0x40 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程