Hello,
I would like switch 2 integers. With Java I could do that thank to :
void switch( int &a, int &b){ int memory = a; a = b; b = a; }
but how can I do that with kotlin
thanks for your help
Hello,
I would like switch 2 integers. With Java I could do that thank to :
void switch( int &a, int &b){ int memory = a; a = b; b = a; }
but how can I do that with kotlin
thanks for your help
This code is not Java. And your code does not work. Please take some time to ensure that your question is clear and correct before posting. Thank you.
yes, i did an error when I copied :
void change( int &a, int &b){ int memory = a; a = b; b = memory; }
Still not Java.
But to answer your question: This is not possible in Kotlin unless you wrap Int
s with a mutable wrapper:
class MutableInt(var value: Int)
fun switch(a: MutableInt, b: MutableInt) {
val memory = a.value
a.value = b.value
b.value = memory
}
First, this:
void change( int &a, int &b){ int memory = a; a = b; b = memory; }
as far as I can tell is C++ not Java.
Unless I am mistaken, Java equivalent would be:
static void change(Integer a, Integer b) {
Integer memory = a;
a = b;
b = memory;
}
And in Kotlin (since Int?
is stored as Integer
and not primitive int
: https://kotlinlang.org/docs/reference/basic-types.html):
static void change(Int? a, Int? b) {
val memory: Int? = a;
a = b;
b = memory;
}
Both of your code samples do not work, but for different reasons:
a
and b
, but not the values they point to.Please make sure your code samples are correct before posting. If in doubt, verify the behavior in a short prorgram before posting. Thank you.
Thanks for pointing my mistakes. I’ll be more careful posting next time.
thank you jstuyts it works
I think this is simpler:
a = b.also { b = a}