Co to są puzzlery?
Puzzlery to podchwytliwe programistyczne wyzwania, z często zaskakującymi odpowiedziami. Pokazują, jak złe praktyki mogą prowadzić do problemów.
Przykładowe puzzlery
Kolejność
fun main() {
val x: Int? = 2
val y: Int = 3
val sum = x?:0 + y
println(sum)
}
Co zostanie wydrukowane?
a) 3
b) 5
c) 2
d) 0
Pokaż odpowiedź i wyjaśnienie Kolejność
open class C
class D: C()
fun C.foo() = "c"
fun D.foo() = "d"
fun printFoo(c: C) {
println(c.foo())
}
fun main() {
printFoo(D())
}
Co zostanie wyświetlone?
a) Doesn't compile
b) Runtime error
c) c
d) d
Pokaż odpowiedź i wyjaśnienie