- Scala編程(第5版)
- (德)馬丁·奧德斯基等
- 580字
- 2022-05-06 15:51:38
4.6 結(jié)語(yǔ)
本章介紹了Scala類和對(duì)象的基礎(chǔ),并展示了如何編譯和運(yùn)行應(yīng)用程序。在下一章,你將會(huì)了解到更多關(guān)于Scala基礎(chǔ)類型和用法的內(nèi)容。
[1]這里的checksum方法用到了兩個(gè)位運(yùn)算操作符:~是位補(bǔ)碼(bitwise complement),&是按位與(bitwise and)。這兩個(gè)操作符在5.7節(jié)均有介紹。
[2]參數(shù)采用val的原因是val更容易推敲,不需要像var那樣進(jìn)一步查證val是不是被重新賦值過(guò)。
[3]我們?cè)谶@里用了一個(gè)緩存來(lái)展示帶有字段的實(shí)例對(duì)象。類似這樣的緩存是以犧牲內(nèi)存換取計(jì)算時(shí)間的方式來(lái)提升性能的。通常來(lái)說(shuō),只有當(dāng)你遇到緩存能解決的性能問(wèn)題時(shí)才會(huì)用到這樣的緩存,并且你可能會(huì)用一個(gè)弱引用的映射,如scala.collection.mutable的WeakHaskMap,以便在內(nèi)存吃緊時(shí),緩存中的條目可以被垃圾回收掉。
[4]由于new關(guān)鍵字僅被用于實(shí)例化類,因此這里創(chuàng)建的對(duì)象是ChecksumAccumulator類的實(shí)例,而不是相同名稱的那個(gè)單例對(duì)象。
[5]這里的>>操作符執(zhí)行的是右移位運(yùn)算,我們將在5.7節(jié)介紹。
[6]合成類的名稱是對(duì)象名加上一個(gè)美元符號(hào)。因此,名稱為ChecksumAccumulator的單例對(duì)象的合成類名是ChecksumAccumulator$。
[7]我們將其稱為參數(shù)化字段,將在10.6節(jié)介紹如何定義它。
[8]可以通過(guò)@main注解將其他名稱的方法指定為主方法,這將在23.3節(jié)介紹。
[9]如果你是Java程序員,則可以把這句引入語(yǔ)句當(dāng)作Java 5的靜態(tài)引入(static import)功能。Scala與Java靜態(tài)引入的區(qū)別在于,可以從任何對(duì)象引入成員,而不僅僅是從單例對(duì)象。
[10]Scala用來(lái)“解釋”一個(gè)Scala源文件的實(shí)際機(jī)制是,它會(huì)先把Scala源代碼編譯成Java字節(jié)碼,然后馬上通過(guò)類加載器加載,并執(zhí)行它。
- Learning Single:page Web Application Development
- Getting Started with Gulp(Second Edition)
- 一步一步學(xué)Spring Boot 2:微服務(wù)項(xiàng)目實(shí)戰(zhàn)
- C程序設(shè)計(jì)簡(jiǎn)明教程(第二版)
- Architecting the Industrial Internet
- INSTANT Sencha Touch
- Vue.js 3.0源碼解析(微課視頻版)
- Unity Game Development Scripting
- 區(qū)塊鏈底層設(shè)計(jì)Java實(shí)戰(zhàn)
- Visual Basic程序設(shè)計(jì)
- Test-Driven Development with Django
- Android驅(qū)動(dòng)開(kāi)發(fā)權(quán)威指南
- Python應(yīng)用與實(shí)戰(zhàn)
- Node.js 6.x Blueprints
- Elasticsearch搜索引擎構(gòu)建入門與實(shí)戰(zhàn)