Go语言生成随机字符串的程序
Go 语言中的字符串是字符的集合。由于 Go 语言中的字符串是不可变的,因此在生成后无法修改它们。但是,连接或添加到现有字符串可以创建新的字符串。字符串类型是 Go 语言中的内置类型,可以像其他任何数据类型一样以多种方式使用。
语法
rand.Seed(value)
Rand.Seed() 函数用于生成随机数。它接受用户输入作为参数,该参数是生成随机数的上限。
func Now() Time
Now() 函数定义在 time 包中。此函数生成当前本地时间。要使用此函数,我们必须首先在程序中导入 time 包。
func (t Time) UnixNano() int64
UnixNano() 函数定义在 time 包中。此函数用于获取自 1970 年 1 月 1 日 UTC 时间以来经过的秒数。它返回的最终结果是 64 位整数类型。
rand.Intn(n)
Intn() 函数定义在 math/rand 包中。它用于在 [0, n] 区间内生成随机数,其中 n 是用户提供的数字。如果提供的数字小于 0,则该函数会抛出错误。
func make ([] type, size, capacity)
Go 语言中的 make 函数用于创建数组/映射,它接受要创建的变量的类型、大小和容量作为参数。
rand.Read(output)
read 函数用于生成密码学安全的随机字节流。生成的随机字节被放置到 []byte 切片中,这是它接受的唯一参数。如果该函数返回错误,则不应使用它。
算法
步骤 1 − 创建一个 package main 并声明 fmt(格式包)、math/rand 和 time 包
步骤 2 − 创建一个常量集
步骤 3 − 开始 main 函数()
步骤 4 − 使用内部函数创建随机字符串
步骤 5 − 使用 string() 方法将字节段转换为字符串
步骤 6 − 使用 fmt.Println() 函数(其中 ln 表示换行)在控制台上打印获得的随机字符串。
示例 1
在这个例子中,我们将学习如何使用 math/rand 包创建随机字符串,这里将构造一个字符集,从中将使用 rand/math 包在控制台上打印随机字符串。
package main
import (
"fmt"
"math/rand"
"time"
)
//create character set
const set = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
func main() {
rand.Seed(time.Now().UnixNano())
fmt.Println("The character set given here is:", set)
length := 20
output := make([]byte, length)
for i := range output {
output[i] = set[rand.Intn(len(set))] //random characters generated from the above set
}
fmt.Println("The set of random characters is:")
fmt.Println(string(output)) //print the output after converting it to string
}
输出
The character set given here is: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 The set of random characters is: nV6EakoP6yBy8qtCwuvC
示例 2
在这个例子中,我们将看到如何使用 crypto/rand 包创建随机字符串。输出将是在控制台上生成的随机字符串,并使用 Go 语言中的 print 语句打印。
package main
import (
"crypto/rand"
"fmt"
)
func main() {
length := 10
output := make([]byte, length) //create output slice of bytes
_, err := rand.Read(output) //function reads the error
if err != nil {
fmt.Println(err) //print the error
return
}
fmt.Println("The set of random characters is:")
fmt.Println(string(output)) //print random characters
}
输出
The set of random characters is: 6
结论
我们使用两个例子执行了生成随机字符串的程序。在第一个例子中,我们使用 math/rand 包和一个字符集,在第二个例子中,我们使用 crypto/rand 包生成随机字符串。这两个程序都给出了类似的输出。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP