go 随机数宕机
//获取一个随机数
func bairand(s, e int, s1 rand.Source) int {
if s1 == nil {
s1 = rand.NewSource(time.Now().UnixNano())
}
r1 := rand.New(s1)
n := e - s + 1
if n <= 0 {
n = 10
}
r := r1.Intn(n) + s //这就是报错的行 D:/goxm/ttdyxdy/baifunction.go:736 +0x15a
return r
}
报错信息:
goroutine 14222020 [running]:
runtime/debug.Stack()
D:/Program Files/Go/src/runtime/debug/stack.go:24 +0x65
runtime/debug.PrintStack()
D:/Program Files/Go/src/runtime/debug/stack.go:16 +0x19
main.dy_printactionfunxfun.func1()
D:/goxm/ttdyxdy/function.go:1990 +0xec
panic({0xf998e0, 0xc006f0db30})
D:/Program Files/Go/src/runtime/panic.go:844 +0x258
math/rand.(*rngSource).Uint64(...)
D:/Program Files/Go/src/math/rand/rng.go:249
math/rand.(*rngSource).Int63(0x10?)
D:/Program Files/Go/src/math/rand/rng.go:234 +0x92
math/rand.(*Rand).Int63(...)
D:/Program Files/Go/src/math/rand/rand.go:84
math/rand.(*Rand).Int31(...)
D:/Program Files/Go/src/math/rand/rand.go:98
math/rand.(*Rand).Int31n(0xc000a78fd0, 0x9)
D:/Program Files/Go/src/math/rand/rand.go:133 +0x59
math/rand.(*Rand).Intn(0x69483230?, 0x10666b8?)
D:/Program Files/Go/src/math/rand/rand.go:171 +0x2e
main.bairand(0x1, 0x9, {0x10666b8?, 0xc000103500?})
D:/goxm/ttdyxdy/baifunction.go:736 +0x15a
main.dy_printactionfunxfun({_, _}, {{0x1cd, 0x1}, {0x172b6c, 0x1}, {{0xc000012a88, 0x6}, 0x1}, {{0x0, ...}, ...}, ...}, ...)
D:/goxm/ttdyxdy/function.go:2094 +0xa19
created by main.dy_printactionfunx
D:/goxm/ttdyxdy/main.go:115 +0x1172
程序崩溃了 runtime error: index out of range [-1]
不是每次都报错,大部分时间是没问题的,只是偶尔宕机