Groovyで範囲内乱数
ちょっと1.6から追加されたdefineを使って範囲内乱数を実現するメソッドを追加してみた。
IntRange.metaClass.define { // 範囲内でランダム random { int from = delegate.isReverse() ? to : from int to = delegate.isReverse() ? from : to int size = to - from + 1 (Math.floor(Math.random() * size) + from) as int } } // 検証 1000.times{ assert (0..4).random() in (0..4), '0〜4の値がランダムに返ってくるはずですよ' }
動作確認: Groovy Version: 1.6.1 JVM: 1.6.0_13
簡潔にかけて素敵ですね。