I'm pretty new to Kotlin but I'd like to share a small proposal that could IMHO benefit the language. Its implementation should be simple.
According to the latest documentation the following assign operators are currently supported:
|a += b||a.plusAssign(b)|
|a -= b||a.minusAssign(b)|
|a *= b||a.timesAssign(b)|
|a /= b||a.divAssign(b)|
|a %= b||a.modAssign(b)|
But in certain situations all you want to perform is a copy/assignment without a preceding arithmetic operation:
|Proposed Expression||Translated To|
|a := b||a.copyAssign(b) // or a.valueAssign(b) // or simply a.assign(b)|
This is unrelated to the standard assignment operator (=) that simply changes the object being referenced by the variable.
Hypothetical scenarios where it could be useful:
Copying Containers / clone-Into
tableA := tableB // tableA now has the same records as tableB
arrayA := arrayB // arrayA is still a separate object
Operations without temporary objects:
matrixA := matrixB * matrixC
where (matrixB * matrixC) does not yield a matrix object but an “operation” object that gets applied later during the := operator.
This second scenario is the main reason I came forward with this proposal.
Thank you for your time.