为什么Kotlin没有实现Int.plus(value:String)?

当你可以这样做的时候会引起不适:

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

并不能做到:

 val result = integer + string 

它有隐藏的意义还是一个遗漏?

Kotlin是静态types语言,基本上不能将String添加到Integer中。 但有可能超载运营商,所以我们现在可以。

如果我们想要将任何对象添加到字符串,很明显:每个对象都可以隐式转换为字符串( Any#toString()

但在Int + smthg情况下,它不是那么清楚,所以只有Int + kotlin.Number在标准库中定义。

我建议使用字符串插值:

 val result = "${integer}${string}" 

或者定义自己的重载加运算符:

 operator fun Int.plus(string: String): String = string + this