Scala伴生类和伴生对象
單例對(duì)象與類同名時(shí),這個(gè)單例對(duì)象被稱為這個(gè)類的伴生對(duì)象,而這個(gè)類被稱為這個(gè)單例對(duì)象的伴生類。伴生類和伴生對(duì)象要在同一個(gè)源文件中定義,伴生對(duì)象和伴生類可以互相訪問其私有成員。不與伴生類同名的單例對(duì)象稱為孤立對(duì)象。
ChecksumAccumulator單例對(duì)象有一個(gè)方法calculate,用于計(jì)算所帶的String參數(shù)中字符的校驗(yàn)和。它還有一個(gè)私有字段cache,一個(gè)緩存之前計(jì)算過的校驗(yàn)和的可變映射。方法的第一行,"if (cache.contains(s))",檢查緩存,看看是否傳遞進(jìn)來的字串已經(jīng)作為鍵存在于映射當(dāng)中。如果是,就僅僅返回映射的值,"cache(s)"。否則,執(zhí)行else子句,計(jì)算校驗(yàn)和。else子句的第一行定義了一個(gè)叫acc的val并用新建的ChecksumAccumulator實(shí)例初始化它。下一行是個(gè)for表達(dá)式,對(duì)傳入字串的每個(gè)字符循環(huán)一次,并在其上調(diào)用toByte把字符轉(zhuǎn)換成Byte,然后傳遞給acc所指的ChecksumAccumulator實(shí)例的add方法。完成了for表達(dá)式后,下一行的方法在acc上調(diào)用checksum,獲得傳入字串的校驗(yàn)和,并存入叫做cs的val。下一行,"cache += (s -> cs)",傳入的字串鍵映射到整數(shù)的校驗(yàn)和值,并把這個(gè)鍵-值對(duì)加入cache映射。方法的最后一個(gè)表達(dá)式,"cs",保證了校驗(yàn)和為此方法的結(jié)果。
【伴生類和伴生對(duì)象】
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Scala伴生类和伴生对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala Case类和对象
- 下一篇: Scala中的trait特质