为什么==会在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