From 00e4e9cb39fcbd1d80a9f0ca35c4cb9557d8a811 Mon Sep 17 00:00:00 2001 From: Victor Date: Sat, 4 Jun 2016 12:42:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=BA=D0=B0=20Long=20=D0=B2=20std::rand?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ownlang/lib/modules/functions/std_rand.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/com/annimon/ownlang/lib/modules/functions/std_rand.java b/src/com/annimon/ownlang/lib/modules/functions/std_rand.java index 3efe570..dc11b15 100644 --- a/src/com/annimon/ownlang/lib/modules/functions/std_rand.java +++ b/src/com/annimon/ownlang/lib/modules/functions/std_rand.java @@ -16,6 +16,20 @@ public final class std_rand implements Function { Arguments.checkRange(0, 2, args.length); if (args.length == 0) return NumberValue.of(RND.nextDouble()); + final Object raw = args[0].raw(); + if (raw instanceof Long) { + long from = 0L; + long to = 100L; + if (args.length == 1) { + to = (long) raw; + } else if (args.length == 2) { + from = (long) raw; + to = ((NumberValue) args[1]).asLong(); + } + final long randomLong = RND.nextLong() >>> 1; + return NumberValue.of(randomLong % (to - from) + from); + } + int from = 0; int to = 100; if (args.length == 1) {