当你能做到这一点时会引起不适:
val string = " abc "
val integer = 8
val result = string + integer
并且不能这样做:
val result = integer + string
隐藏意义还是遗漏?
答案 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