当前位置: 首页 > 面试题库 >

科特林的平等

左丘积厚
2023-03-14
问题内容

我正在学习具有C
++和Java背景的Kotlin。我期待下面的打印true,不false。我知道这对应==equals。默认实现equals不比较每个成员,即firstNamelastName吗?如果是这样,它会不会看到字符串值相等(因为再次==映射到字符串值equal)?显然,我在Kotlin中还没有涉及平等与身份相关的问题。

class MyPerson(val firstName: String, val lastName: String)

fun main(args: Array<String>) {
   println(MyPerson("Charlie", "Parker") == MyPerson("Charlie", "Parker"))
}

问题答案:

equals您描述的默认实现仅适用于数据类。不适用于从中继承实现的常规类Any,只需使对象与自身相等即可。



 类似资料:
  • 如何在使用Kotlin的Spring Boot中正确初始化ConfigurationProperties? 目前我喜欢下面的例子: 但是它看起来很丑陋,实际上不是一个iable,foo是常量ue,应该在启动期间初始化,将来不会改变。

  • 这是正确的吗? 我可以找到一个相关的问题,但它是有参数的,我不能在没有params的情况下转换它。

  • 我正在维护一个用静态编程语言和Spring Boot编写的微服务系统,在一些代码中,我发现!!语法,我不知道它的意思: 状态是上述函数的响应。有人可以向我解释一下吗!意思是,它在这种情况下有什么用?提前致谢!!!

  • 我正在尝试IntDef typedef将特定类型的参数限制为函数。但是当我使用Java使用IntDef时,它工作正常,但同时,它不适用于kotlin。以下是我的代码片段 - 在JAVA中- 在静态编程语言中- 在课堂上使用- 调用演示函数给我一个错误消息,说它必须是:< code>TransTypeJava之一。CASH,< code>TransTypeJava。通过传递< code>TransT