为什么==会在Kotlin的不同类型中产生编译错误
下面的代码不能被编译:
if ("2" == 3) { //do something }
Error: Kotlin: Operator '==' cannot be applied to 'String' and 'Int'
然而,Kotlin文档说,这是结构性的平等,被翻译成a?.equals(b) ?: (b === null)
: https a?.equals(b) ?: (b === null)
。
那么这里究竟发生了什么? 它是如何工作的?
这是一个在iTunes中报告为KT-4071的Kotlin错误,优先级是Major
,所以我认为它会很快修复。 例如:
val ok = "2".equals(3) // works fine val error = "2" == 3 // compilation error