Это вызывает дискомфорт, когда вы можете это сделать:
val string = " abc " val integer = 8 val result = string + integer
и не может сделать:
val result = integer + string
У него есть скрытый смысл или это упущение?
Kotlin – это статический типизированный язык, и в основном вы не можете добавить String в Integer. Но есть возможность перегрузить операторов, поэтому мы можем сейчас.
В случае, если мы хотим добавить любой объект в строку, ясно: каждый объект может быть неявно преобразован в String ( Any#toString()
)
Но в случае Int + smthg
это не так понятно, так что только Int + kotlin.Number
определяется в стандартной библиотеке.
Я предлагаю использовать интерполяцию строк:
val result = "${integer}${string}"
Или определите собственный перегруженный плюс оператор:
operator fun Int.plus(string: String): String = string + this