go 语言 生成随字符串
时间: 2023-07-07 21:18:00 浏览: 46
在 Go 语言中,可以使用 `math/rand` 包和 `time` 包生成指定长度的随机字符串。示例如下:
```go
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
// 设置随机数种子
rand.Seed(time.Now().UnixNano())
// 生成指定长度的随机字符串
length := 10
letters := []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
randomStr := make([]rune, length)
for i := range randomStr {
randomStr[i] = letters[rand.Intn(len(letters))]
}
fmt.Println(string(randomStr))
}
```
该示例中,使用 `[]rune` 类型的 `letters` 变量存储可用于生成随机字符串的字符集,然后循环指定次数,随机生成字符串并存储在 `randomStr` 变量中。最后使用 `string` 函数将 `randomStr` 转换为字符串类型并输出。
相关问题
用go语言怎么生成由字符MTK组成的图形
可以使用Go语言的`fmt`和`strings`包来生成由字符MTK组成的图形。下面是一个简单的例子,可以生成一个由MTK字符组成的三角形:
```
package main
import (
"fmt"
"strings"
)
func main() {
n := 10 // 三角形的高度
for i := 1; i <= n; i++ {
// 生成一行由MTK字符组成的字符串
line := strings.Repeat("M", i) + strings.Repeat("T", n-i) + strings.Repeat("K", n-i)
// 在控制台输出该行字符串
fmt.Println(line)
}
}
```
这个例子中,我们使用了`strings.Repeat()`函数来生成一行由MTK字符组成的字符串。通过循环,我们可以生成多行字符串,从而组成一个由MTK字符组成的图形。你可以根据自己的需要修改字符的数量和图形的形状。
用Go语言写一个能并发生成指定长度的随机数字字符串方法
可以使用Go语言的内置包math/rand和time来生成随机数字字符串,使用goroutine实现并发。
下面是一个示例代码:
```go
package main
import (
"fmt"
"math/rand"
"time"
)
const charset = "0123456789" // 定义字符集
func GenerateRandomString(length int, ch chan<- string) {
rand.Seed(time.Now().UnixNano()) // 设置随机数种子
b := make([]byte, length)
for i := range b {
b[i] = charset[rand.Intn(len(charset))]
}
ch <- string(b)
}
func main() {
length := 10 // 生成的字符串长度
num := 5 // 并发生成的数量
ch := make(chan string, num)
for i := 0; i < num; i++ {
go GenerateRandomString(length, ch)
}
for i := 0; i < num; i++ {
fmt.Println(<-ch)
}
}
```
在这个示例中,我们定义了一个字符集,长度为10,数量为5的随机字符串生成器。使用goroutine实现并发,每个goroutine生成一个随机字符串并将其发送到通道中。在主函数中,我们从通道中读取生成的随机字符串并打印输出。