MG
fun foo(): Int? {
var bar: Int? = 1
return bar.also {
bar = null
}
}
Size: a a a
MG
fun foo(): Int? {
var bar: Int? = 1
return bar.also {
bar = null
}
}
QH
fun foo(): Int? {
var bar: Int? = 1
return bar.also {
bar = null
}
}
MG
MG
Z
data class A(var i:Int)
val a = A(2)
println(a)
println(a.also{it.i =4})
println(a)
var b = 3
println(b)
println(b.also { b = 4 })
println(b)
Вывод будет: A(i=2)MG
data class A(var i:Int)
val a = A(2)
println(a)
println(a.also{it.i =4})
println(a)
var b = 3
println(b)
println(b.also { b = 4 })
println(b)
Вывод будет: A(i=2)Z
public inline fun <T> T.also(block: (T) -> Unit): T {
contract {
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
}
block(this)
return this
}
тут нет копированияMG
public inline fun <T> T.also(block: (T) -> Unit): T {
contract {
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
}
block(this)
return this
}
тут нет копированияch
MG
public inline fun <T> T.also(block: (T) -> Unit): T {
contract {
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
}
block(this)
return this
}
тут нет копированияZ
data class A(var i:Int)я это имел ввиду
val a = A(2)
println(a)
println(a.also{a.i =4})
println(a)
MG
data class A(var i:Int)я это имел ввиду
val a = A(2)
println(a)
println(a.also{a.i =4})
println(a)
Z
Z
MG
var a: A? = A(2)
println(a.also{a = null})
MG
MG
MG
Z
MG