2022
我们一起努力

Scala对象的相等性举例分析 - 编程语言

本篇内容介绍了“Scala对象的相等性举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

如果你想比较一下看看两个Scala对象是否相等,可以使用或者==,或它的反义!=。下面举几个例子:

scala> 1 == 2 res24: Boolean = false scala> 1 != 2 res25: Boolean = true scala> 2 == 2 res26: Boolean = true

这些操作对所有对象都起作用,而不仅仅是基本类型。例如,你可以用他比较列表:

scala> List(1, 2, 3) == List(1, 2, 3)  res27: Boolean = true scala> List(1, 2, 3) == List(4, 5, 6)  res28: Boolean = false

进一步,你还可以比较不同类型的两个对象:

scala> 1 == 1.0 res29: Boolean = true scala> List(1, 2, 3) == "hello" res30: Boolean = false

你甚至可以比较null,或任何可能是null的东西。不会有任何异常被抛出:

scala> List(1, 2, 3) == null res31: Boolean = false scala> null == List(1, 2, 3)  res32: Boolean = false

如你所见,==已经被仔细地加工过,因此在许多情况下你都可以得到你想要的相等性的比较。这只是用了一个非常简单的规则:首先检查左侧是否为null,如果不是,调用equals方法。由于equals是一个方法,因此比较的精度取决于左手边的参数。又由于已经有一个自动的null检查,因此你不需要手动再检查一次了。自动检查机制不会检查右手侧的参数,但是任何合理的equals方法都应在参数为null的时候返回false。

这种类型的比较对于不同的对象也会产生true,只要他们的内容是相同的并且它们的equals方法是基于内容编写的。例如,以下是恰好都有五个同样字母的两个字串的比较:

scala> ("he" + "llo") == "hello" res33: Boolean = true

Scala的==与Java的有何差别

Scala对象的相等性举例分析 - 编程语言

Java里的既可以比较原始类型也可以比较参考类型。对于原始类型,Java的==比较值的相等性,如Scala。然而对于参考类型,Java的==比较了参考相等性:reference equality,也就是说这两个变量是否都指向于JVM堆里的同一个对象。Scala也提供了这种机制,名字是eq。不过,eq和它的反义词,ne,仅仅应用于可以直接映射到Java的对象。

“Scala对象的相等性举例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云网站,小编将为大家输出更多高质量的实用文章!

赞(0)
文章名称:《Scala对象的相等性举例分析 - 编程语言》
文章链接:https://www.fzvps.com/78699.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!