可以返回2个参数之间的随机整数的通用方法,例如ruby与rand(0..n)
。
有什么建议吗?
我的建议是一个扩展的功能IntRange创建这样的随机量:(0..10).random()
从1.3开始,Kotlin带有自己的多平台随机数发生器。在此KEEP中对此进行了描述。下面描述的扩展现在是Kotlin标准库的一部分,只需像这样使用它:
val rnds = (0..10).random() // generated random from 1 to 9 included
在1.3之前,我们在JVM上使用Random
,甚至ThreadLocalRandom
在JDK> 1.6上也是如此。
fun IntRange.random() =
Random().nextInt((endInclusive + 1) - start) + start
像这样使用:
// will return an `Int` between 0 and 10 (incl.)
(0..10).random()
如果您只希望函数返回1, 2, ..., 9
(10
不包括在内),请使用以下构造的范围until
:
(0 until 10).random()
如果您使用的是JDK> 1.6,请使用ThreadLocalRandom.current()
代替Random()
。
KotlinJs和其他变体
对于kotlinjs和其他不允许使用的用例java.util.Random
,请参见此替代方法。
另外,请参阅此答案以了解我的建议。它还包括用于randomChar
的扩展功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句