真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Scala對象的相等性舉例分析

本篇內(nèi)容介紹了“Scala對象的相等性舉例分析”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供阜新網(wǎng)站建設(shè)、阜新做網(wǎng)站、阜新網(wǎng)站設(shè)計(jì)、阜新網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、阜新企業(yè)網(wǎng)站模板建站服務(wù),十多年阜新做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

如果你想比較一下看看兩個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

進(jìn)一步,你還可以比較不同類型的兩個對象:

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

如你所見,==已經(jīng)被仔細(xì)地加工過,因此在許多情況下你都可以得到你想要的相等性的比較。這只是用了一個非常簡單的規(guī)則:首先檢查左側(cè)是否為null,如果不是,調(diào)用equals方法。由于equals是一個方法,因此比較的精度取決于左手邊的參數(shù)。又由于已經(jīng)有一個自動的null檢查,因此你不需要手動再檢查一次了。自動檢查機(jī)制不會檢查右手側(cè)的參數(shù),但是任何合理的equals方法都應(yīng)在參數(shù)為null的時候返回false。

這種類型的比較對于不同的對象也會產(chǎn)生true,只要他們的內(nèi)容是相同的并且它們的equals方法是基于內(nèi)容編寫的。例如,以下是恰好都有五個同樣字母的兩個字串的比較:

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

Scala的==與Java的有何差別

Java里的既可以比較原始類型也可以比較參考類型。對于原始類型,Java的==比較值的相等性,如Scala。然而對于參考類型,Java的==比較了參考相等性:reference equality,也就是說這兩個變量是否都指向于JVM堆里的同一個對象。Scala也提供了這種機(jī)制,名字是eq。不過,eq和它的反義詞,ne,僅僅應(yīng)用于可以直接映射到Java的對象。

“Scala對象的相等性舉例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


新聞標(biāo)題:Scala對象的相等性舉例分析
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/ijopej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部