lifter
08/25/2018, 7:04 PMprintln(f())
prints “Yes” instead of “No”?
fun main(args: Array<String>) {
var (f, x) = g()
println(f()) // Prints "yes"
x = 1
println(f()) // Prints "yes"
}
fun g(): Pair<() -> Char, Int> {
var x = 0
var f = fun(): Char { return if (x == 0) { println("yes"); 'Y' } else { println("no"); 'N' } }
return f to x
}
Dominaezzz
08/25/2018, 7:11 PMlifter
08/25/2018, 7:14 PMfun main(args: Array<String>) {
val x = 0
val y = f(x)
println(x === y)
}
fun f(x: Int): Int {
return x
}
Dominaezzz
08/25/2018, 7:33 PM===
is the same as ==
for "primitives".lifter
08/25/2018, 7:34 PMDominaezzz
08/25/2018, 7:35 PMInt?
instead of Int
.lifter
08/25/2018, 7:36 PMDominaezzz
08/25/2018, 7:36 PM===
is the same as ==
for values that are represented as primitive types at runtime.lifter
08/25/2018, 7:36 PMimport java.io.File
fun main(args: Array<String>) {
val fileA = File("/etc")
val fileB = f(fileA)
println(fileA === fileB)
}
fun f(file: File): File {
return file
}
Dominaezzz
08/25/2018, 7:41 PMkarelpeeters
08/25/2018, 7:47 PMlifter
08/25/2018, 7:58 PMfun main(args: Array<String>) {
val x = 0
val y = 0
println(x === y) // Prints "true"
}
karelpeeters
08/25/2018, 8:00 PM0
by "hello"
and it probably still prints true
.lifter
08/25/2018, 8:17 PMkarelpeeters
08/25/2018, 8:25 PMSiebelsTim
08/26/2018, 8:28 AMAndreas Sinz
08/26/2018, 9:35 AMx = 1
assigns a new value to the local x
, you aren't changing the old value