我目前正在学习Kotlin,遇到了一种令我感到困惑的行为.下面这两行代码让我感到困惑:
"".equals(1) // not compile error
"" == 1 // compile error
"".equals(1)
-此行编译并运行时没有任何问题.
"" == 1
-但是,此行会导致编译时错误.
据我所知,在Kotlin中,==
运算符被转换为对equals方法的调用.所以我很好奇为什么第一个语句被认为是有效的,而第二个语句不是,尽管这两个语句似乎都试图在字符串和Int之间进行相同的比较.
有人能解释一下Kotlin中使第一条语句编译和运行而不是第二条语句编译和运行的基本机制吗?