1. ホーム

[解決済み】Kotlinで乱数を取得するにはどうすればいいですか?

2022-04-02 18:31:08

質問

Ruby のように、2つのパラメータの間のランダムな整数を返す汎用メソッドは rand(0..n) .

何かご提案があればお願いします。

解決方法は?

私の提案は 拡張機能 の機能を IntRange を使うと、こんな風にランダムで作成されます。 (0..10).random()

TL;DR Kotlin >= 1.3、すべてのプラットフォームに対応する1つのRandom

1.3 では、Kotlin は独自のマルチプラットフォーム Random ジェネレータを備えています。これは次のように記述されています。 キープ . 後述するエクステンションは現在 Kotlin標準ライブラリの一部である ということで、このように使うだけです。

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


Kotlin < 1.3

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 を参照してください。 この代替案 .

また、この 回答 は、私の提案のバリエーションです。また、ランダムな Char s.