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.Dominaezzz
08/25/2018, 7:36 PMDominaezzz
08/25/2018, 7:36 PMlifter
08/25/2018, 7:36 PMlifter
08/25/2018, 7:39 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
}lifter
08/25/2018, 7:41 PMDominaezzz
08/25/2018, 7:41 PMkarelpeeters
08/25/2018, 7:47 PMkarelpeeters
08/25/2018, 7:48 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