random - 如何在 Kotlin 中获取随机数?

标签 random kotlin jvm

一个可以返回两个参数之间的随机整数的通用方法,就像 ruby​​ 对 rand(0..n) 所做的那样。

有什么建议吗?

最佳答案

我的建议是 extension IntRange上的功能像这样创建随机数:(0..10).random()

TL;DR Kotlin >= 1.3,所有平台随机一个

从 1.3 开始,Kotlin 自带了自己的多平台随机生成器。在此 KEEP 中有描述.下面描述的扩展名现在是 part of the Kotlin standard library ,只需像这样使用它:

val rnds = (0..10).random() // generated random from 0 to 10 included

Kotlin <1.3

在 1.3 之前,在 JVM 上我们使用 Random 甚至如果我们在 JDK > 1.6 上使用 ThreadLocalRandom

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 的用例,请参阅 this alternative .

另外,请参阅 answer对于我的建议的变化。它还包括随机 Chars 的扩展功能。

关于random - 如何在 Kotlin 中获取随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45685026/

相关文章:

php - 如何从 PHP 中的数组中选择随机值?

kotlin - 通过变量的传递类型

android - RxJava返回错误为onNext并继续流

java - 访问变量时线程行为的差异

perl - 从集合中进行概率选择

java - 创建随机数组方法

kotlin - 如何在 Kotlin 中对整数数组的每个项目求平方

Java 崩溃的应用程序 - 如何找出 Java 崩溃的原因?

java - 简单的 CLI Java 程序不断消耗越来越多的内存

generics - 是否可以从函数中返回具有随机类型的泛型结构