首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我如何在Kotlin中获得一个随机数?

我如何在Kotlin中获得一个随机数?
EN

Stack Overflow用户
提问于 2017-08-15 08:49:25
回答 16查看 153.4K关注 0票数 228

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

有什么建议吗?

EN

回答 16

Stack Overflow用户

发布于 2017-08-15 09:07:01

生成一个介于from(包含)和to(不包含)之间的随机整数

import java.util.Random

val random = Random()

fun rand(from: Int, to: Int) : Int {
    return random.nextInt(to - from) + from
}
票数 46
EN

Stack Overflow用户

发布于 2018-02-16 06:59:12

从kotlin 1.2开始,你可以这样写:

(1..3).shuffled().last()

只要注意它是大的O(n),但是对于一个很小的列表(特别是唯一值的列表),它是可以的:D

票数 35
EN

Stack Overflow用户

发布于 2017-08-20 07:21:04

您可以创建一个类似于java.util.Random.nextInt(int)extension function,但是它的绑定使用IntRange而不是Int

fun Random.nextInt(range: IntRange): Int {
    return range.start + nextInt(range.last - range.start)
}

现在,您可以将其用于任何Random实例:

val random = Random()
println(random.nextInt(5..9)) // prints 5, 6, 7, 8, or 9

如果您不想管理自己的Random实例,那么您可以使用例如ThreadLocalRandom.current()来定义一个方便的方法

fun rand(range: IntRange): Int {
    return ThreadLocalRandom.current().nextInt(range)
}

现在您可以像在Ruby中那样获取一个随机整数,而不必首先自己声明一个Random实例:

rand(5..9) // returns 5, 6, 7, 8, or 9
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45685026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档