kotlin-stdlib-common

时间:2018-07-14 04:32:57

标签: kotlin kotlin-multiplatform

在kotlin-stdlib-common中,是否有任何可用的随机性来源?是我可以用来创建自己的随机数生成器的标准java.util.Randomkotlin.math.random*还是基本当前时间毫秒的某种实现?我找不到。

如果不存在,如何在不设置自己依赖平台的实现的情况下获得随机性的来源?这是我唯一需要的方法:

expect class Rng {
    fun nextInt(): Int
}

我正在尝试使其与平台无关。

2 个答案:

答案 0 :(得分:1)

答案是:等待Kotlin 1.3发布,在公共库中将为类库和方法提供丰富的类和方法,这些类和方法可以提供随机值的来源。

https://kotlinlang.org/docs/reference/whatsnew13.html#multiplatform-random

答案 1 :(得分:-1)

这可能是一个包含许多链接的帖子,这可能会导致Your answer is in another castle: when is an answer not an answer?的问题,因此,我会尽力编写链接说明。我对 Kotlin多平台的理解是Kotlin-Multiplatform = Kotlin-JVM + Kotlin-JS

我相信java.util.Random提供了Kotlin-JVM的随机数,如果是Kotlin-JS,则提供了Math.Random(),其原因如下:

而且,java.util.Random被设计为与结果平台无关,也与实现平台无关,其原因如下:

所以,我认为

  

如何在不设置自己依赖平台的实现的情况下获得随机性的来源?

也许是一个足够随机的种子和一个随机足够的(P)RNG。