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

时间:2016-02-26 15:41:49

标签: syntax kotlin

当你能做到这一点时会引起不适:

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

并且不能这样做:

val result = integer + string

隐藏意义还是遗漏?

1 个答案:

答案 0 :(得分:3)

Kotlin是静态类型语言,基本上你不能将String添加到Integer。但是有可能使运算符超载,所以我们现在可以。

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

但是如果Int + smthg它不太清楚,那么标准库中只定义了Int + kotlin.Number

我建议使用字符串插值:

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

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

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