Intereting Posts
Android Studio не скомпилирует изменения до второго компиляции с Kotlin FragmentTransaction не будет компилироваться в проекте Android Kotlin Как использовать обработанную Kotlin оболочку MailChimp в Java Project В комнате отсутствуют проверки SQL-запросов во время компиляции? Kotlin VS Scala: реализовать методы с параметрами первичного конструктора Kotlin: Модифицировать (неизменный) Список через бросок, это законно? Почему intairiJ IDEA-область видимости «предоставляется» вместо «компиляции»? Как использовать RetroFit2 responseBodyConverter в Котлин? Как вводить примитивные переменные в Котлин? Kotlin: Создайте регулярный массив, как в Java Фрагмент Назад стоп из второго фрагмента в первый фрагмент kapt: Как обрабатывать тестовые источники? Как получить заголовки ответов с RxAndroid + Retrofit в Kotlin? Комната: связанные объекты – полезный публичный конструктор Разница между !! а также ? в Котлине

Почему Kotlin не реализует Int.plus (значение: String)?

Это вызывает дискомфорт, когда вы можете это сделать:

val string = " abc " val integer = 8 val result = string + integer 

и не может сделать:

 val result = integer + string 

У него есть скрытый смысл или это упущение?

Solutions Collecting From Web of "Почему Kotlin не реализует Int.plus (значение: 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