rand我知道是random的简写,但是Intn是什么单词缩写?知道是哪个单词,方法好记一点。
Int 是 Integer。
n 就是 n,也即你传入的那个参数。
意为随机生成一个比 n 小的 Integer。
P.S. 你要得说得是个缩写的话,理解成 IntegerLessThanN 的缩写也行。
Intn 是指 Int(n),再结合前面的 rand,可以理解为 rand int by n。一般随机数算法给定参数 n 都是指随机生成 [0, n) 间的数。所以结合起来就是产生 [0, n) 的随机整数。
7 回答5.4k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.4k 阅读
1 回答3.4k 阅读
2 回答939 阅读✓ 已解决
2 回答2.3k 阅读
1 回答2.2k 阅读
首先打开官方文档:https://pkg.go.dev/math/rand
可以看到
*Rand
提供了很多方法,其中有一些方法它是成对出现的,例如:Int()
和Intn(n int)
,或者是Int31
和Int31n(n int32)
,又或者是Int63
和Int63n(n int64)
。可以看到
Int
和Intn
方法的区别就是前者无需参数,后者需要传个参数n
,再看看文档的说明:Int
:翻译一下: Int 方法将返回一个非负的伪随机 int 类型的数
以及
Intn
:翻译一下: Intn 方法将返回一个非负伪随机数,其值范围在半开区间 [0, n)。如果传入的 n <= 0,将会 panic
所以
Intn
可以这样记:Intn
=Int
+n
,表示生成一个值在区间[0, n)
的Int
数。其他的Int31n
和Int63n
同理