kotlin是一种全新的编程语言,不仅仅可以编写Java/JVM平台的代码,也可以编写js代码,甚至可以编写本地代码。
本文不过多赘述kotlin的语言特性,只讲一个重点,就是讲述与=号的区别。
简单一点,就是equals方法,而=就是比较是否为同一对象。也就是说,相当于Java的equals方法,而=相当于Java的==。
这是kotlin的运算符重载,在kotlin中,equals方法视为对==运算符的重载。
为了证明这点,我写了一个类,这个类的equals方法永远返回false。
package test
class User(){
override fun equals(other: Any?): Boolean {
println("调用equals")
return false
}
}
那么我就可以在main函数里证明了
fun main(args:Array<String>) {
var user = User()
println("user==user:${user==user}")
println("==完毕")
println("user===user:${user===user}")
}
运行结果是
调用equals
useruser:false
完毕
user=user:true
可见,进行判断时,会调用equals方法,打印出的调用equals追踪语句就证明了这一点,而对于同一对象,===确实返回true。