为什么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