The âplusâ operator is actually overloaded on the String class so that you can append the string representation of any object, not just an Int, to the base string.
This also works in Java and C# though, in the case of the former which doesnât have operator overloading, itâs built into the language and is probably the reason why itâs been carried through into Kotlin.
In the case of numbers, it can of course be confusing if the base string itself is numeric but, otherwise, I see no great harm in it even though I normally prefer to use string interpolation instead.
Although some developers love operator overloading and others hate it, I think myself the Kotlin designers have struck a reasonable compromise between the two positions with the relatively sane form of operator overloading (compared to C++ or Scala, say) we have in the language.