mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-10 15:53:46 +00:00
74 lines
1.3 KiB
Kotlin
Vendored
74 lines
1.3 KiB
Kotlin
Vendored
// FILE: Container.java
|
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
class Container {
|
|
@NotNull
|
|
Value get(Runnable i) {
|
|
i.run();
|
|
return new Value();
|
|
}
|
|
|
|
void set(Runnable i, @NotNull Value value) {
|
|
i.run();
|
|
}
|
|
}
|
|
|
|
class Value {
|
|
@NotNull Value plus(Runnable i) {
|
|
i.run();
|
|
return this;
|
|
}
|
|
|
|
@NotNull Value minus(Runnable i) {
|
|
i.run();
|
|
return this;
|
|
}
|
|
|
|
@NotNull Value times(Runnable i) {
|
|
i.run();
|
|
return this;
|
|
}
|
|
|
|
@NotNull Value div(Runnable i) {
|
|
i.run();
|
|
return this;
|
|
}
|
|
|
|
@NotNull Value mod(Runnable i) {
|
|
i.run();
|
|
return this;
|
|
}
|
|
}
|
|
|
|
// FILE: 1.kt
|
|
|
|
fun box(): String {
|
|
var c = Container()
|
|
var indexAccess = 0
|
|
|
|
var v1 = "FAIL"
|
|
c[{ indexAccess++ }] += { v1 = "OK" }
|
|
if (v1 != "OK") return "plus: $v1"
|
|
|
|
var v2 = "FAIL"
|
|
c[{ indexAccess++ }] -= { v2 = "OK" }
|
|
if (v2 != "OK") return "minus: $v2"
|
|
|
|
var v3 = "FAIL"
|
|
c[{ indexAccess++ }] *= { v3 = "OK" }
|
|
if (v3 != "OK") return "times: $v3"
|
|
|
|
var v4 = "FAIL"
|
|
c[{ indexAccess++ }] /= { v4 = "OK" }
|
|
if (v4 != "OK") return "div: $v4"
|
|
|
|
var v5 = "FAIL"
|
|
c[{ indexAccess++ }] %= { v5 = "OK" }
|
|
if (v5 != "OK") return "mod: $v5"
|
|
|
|
if (indexAccess != 10) return "Fail: $indexAccess"
|
|
|
|
return "OK"
|
|
}
|