Skip to content

Commit 00e4e9c

Browse files
committed
Поддержка Long в std::rand
1 parent 1bcbe19 commit 00e4e9c

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/com/annimon/ownlang/lib/modules/functions/std_rand.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,20 @@ public Value execute(Value... args) {
1616
Arguments.checkRange(0, 2, args.length);
1717
if (args.length == 0) return NumberValue.of(RND.nextDouble());
1818

19+
final Object raw = args[0].raw();
20+
if (raw instanceof Long) {
21+
long from = 0L;
22+
long to = 100L;
23+
if (args.length == 1) {
24+
to = (long) raw;
25+
} else if (args.length == 2) {
26+
from = (long) raw;
27+
to = ((NumberValue) args[1]).asLong();
28+
}
29+
final long randomLong = RND.nextLong() >>> 1;
30+
return NumberValue.of(randomLong % (to - from) + from);
31+
}
32+
1933
int from = 0;
2034
int to = 100;
2135
if (args.length == 1) {

0 commit comments

Comments
 (0)