techie01
07/21/2017, 7:08 AMvoddan
07/21/2017, 7:10 AM10 downTo 1
is optimized for iterations, while (1..10).reversed()
is notpoohbar
07/21/2017, 10:11 AM10 downto 1
gives you Progressionvoddan
07/21/2017, 12:23 PM10 downTo 1
is optimized as well not to allocate an object. Only step
allocates one.class Main() {
fun main(args: Array<String>) {
for(i in (1..10).reversed()) {
println()
}
for(i in 1 .. 10) {
println()
}
for(i in 10 downTo 1) {
println()
}
for(i in 10 downTo 1 step 5) {
println()
}
}
}
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import kotlin.ranges.IntProgression;
import kotlin.ranges.IntRange;
import kotlin.ranges.RangesKt;
import org.jetbrains.annotations.NotNull;
@Metadata(
mv = {1, 1, 6},
bv = {1, 0, 1},
k = 1,
d1 = {"\u0000\u001e\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\u0010\u000e\n\u0002\b\u0002\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\u0019\u0010\u0003\u001a\u00020\u00042\f\u0010\u0005\u001a\b\u0012\u0004\u0012\u00020\u00070\u0006¢\u0006\u0002\u0010\b¨\u0006\t"},
d2 = {"LMain;", "", "()V", "main", "", "args", "", "", "([Ljava/lang/String;)V", "production sources for module gopuzzlers"}
)
public final class Main {
public final void main(@NotNull String[] args) {
IntProgression var10000;
int i;
int var3;
int var4;
label53: {
Intrinsics.checkParameterIsNotNull(args, "args");
var10000 = RangesKt.reversed((IntProgression)(new IntRange(1, 10)));
i = var10000.getFirst();
var3 = var10000.getLast();
var4 = var10000.getStep();
if(var4 > 0) {
if(i > var3) {
break label53;
}
} else if(i < var3) {
break label53;
}
while(true) {
System.out.println();
if(i == var3) {
break;
}
i += var4;
}
}
i = 1;
byte var5 = 10;
if(i <= var5) {
while(true) {
System.out.println();
if(i == var5) {
break;
}
++i;
}
}
i = 10;
var5 = 1;
if(i >= var5) {
while(true) {
System.out.println();
if(i == var5) {
break;
}
--i;
}
}
var10000 = RangesKt.step(RangesKt.downTo(10, 1), 5);
i = var10000.getFirst();
var3 = var10000.getLast();
var4 = var10000.getStep();
if(var4 > 0) {
if(i > var3) {
return;
}
} else if(i < var3) {
return;
}
while(true) {
System.out.println();
if(i == var3) {
return;
}
i += var4;
}
}
}