Scala 2.8最終發(fā)布 全新功能值得期待
【51CTO快譯】Scala 2.8終于來(lái)啦!經(jīng)歷了7個(gè)RC版本,Scala終于迎來(lái)了2.8.0的Final版本,這是修正了大量Bug和增強(qiáng)了若干特性的最終版本。(請(qǐng)關(guān)注51CTO特別推薦專(zhuān)題:Scala編程語(yǔ)言)
經(jīng)過(guò)數(shù)月的艱苦作戰(zhàn),Scala團(tuán)隊(duì)終于在昨天正式發(fā)布了Scala 2.8.0穩(wěn)定版本,現(xiàn)在就可以從Scala的下載頁(yè)面進(jìn)行下載:http://www.scala-lang.org/downloads#
Scala下載頁(yè)面(包括支持windows、Mac OS、Linux和Unix等操作系統(tǒng)的開(kāi)發(fā)包)
該版本在2.7.7的基礎(chǔ)上修復(fù)了大量Bug,并添加了大量的新特性,下面就讓我逐個(gè)道來(lái)吧!
新特性
Scala 2.8.0包括以下新特性:
1、重新設(shè)計(jì)的集合庫(kù)
Scala 2.8對(duì)集合庫(kù)進(jìn)行了全面的重構(gòu),提供了更加一致和有效的設(shè)計(jì),同時(shí)保持了與現(xiàn)有源的完全兼容。
2、新的數(shù)組實(shí)現(xiàn),支持多態(tài)
在Scala 2.8中,對(duì)數(shù)組的處理進(jìn)行了簡(jiǎn)化和優(yōu)化,以前的編譯器已經(jīng)被一個(gè)更系統(tǒng)化和可預(yù)知的實(shí)現(xiàn)取代。
3、類(lèi)型特殊化
Scala 2.8增加了專(zhuān)門(mén)的類(lèi)型參數(shù),使編譯器可以根據(jù)給定的定義透明地生成多個(gè)版本。
4、命名和默認(rèn)參數(shù)
命名參數(shù)改善了包含多個(gè)參數(shù)的方法調(diào)用可讀性,默認(rèn)參數(shù)減少了代碼重復(fù)度,并為case類(lèi)代碼提供了“copy”方法,可以快速生成case類(lèi)代碼。
5、包對(duì)象
除了可以包含類(lèi)和對(duì)象外,包現(xiàn)在也可以包含方法、字段或類(lèi)型別名了,通過(guò)聲明一個(gè)包對(duì)象就可以將它們添加到一個(gè)包中了,在以后的版本中還有更多的功能添加到包對(duì)象中。
6、增強(qiáng)了Scala Swing庫(kù),并提供了更好的參考文檔
組件發(fā)布關(guān)鍵事件,輸入事件,重構(gòu)窗口子層,額外的demo,Swing監(jiān)聽(tīng)器,更完整的組件緩存,Bug修復(fù),更好的參考文檔等。
7、REPL翻新
修復(fù)了許多Bug,Tab鍵自動(dòng)完成classpath中的所有包,以及對(duì)象,實(shí)例方法和字段,包括對(duì)象別名和包對(duì)象,可搜索的歷史,集成Shell訪(fǎng)問(wèn),并提供了一個(gè)超級(jí)模式,可直接進(jìn)入編譯器內(nèi)部。
8、隱式轉(zhuǎn)換
完善了隱式轉(zhuǎn)換過(guò)程,現(xiàn)在可以確定類(lèi)型的變化。
9、改進(jìn)的等于比較
數(shù)值型比較現(xiàn)在和所有基元類(lèi)型的比較一致了,同時(shí)也遵守等于/hashCode約定。
10、Packrat分析器組合
分析器組合現(xiàn)在可以處理左遞歸語(yǔ)法,并改進(jìn)了性能。
11、改進(jìn)的XML庫(kù)
修復(fù)了XML庫(kù)的許多Bug。
12、類(lèi)型推斷
類(lèi)型推斷已經(jīng)擴(kuò)大到處理類(lèi)型構(gòu)造,因此在某些情況下,你可以省略包含高度友好類(lèi)型的類(lèi)型參數(shù)列表。
13、改進(jìn)的注解
Scala 2.8增加了對(duì)嵌入式Java注解的支持,對(duì)于字段的注解,現(xiàn)在可以指定哪個(gè)成員(getter / setter)將有注解。
14、增強(qiáng)的Actor
新的Reactor提供了輕量級(jí),純基于事件的Actor,并可以隱藏發(fā)送者身份,支持后臺(tái)守護(hù)進(jìn)程風(fēng)格的Actor,Actor可以配置用于高效的JSR166y fork/join池,顯著地提升在1.6 JVM上的性能。調(diào)度程序現(xiàn)在也是可插入的,且更容易定制。
15、支持延續(xù)
延續(xù)是通過(guò)一個(gè)編譯器插件支持的,現(xiàn)在已經(jīng)成為主要發(fā)行版的一部分。
內(nèi)部改進(jìn)
1、改進(jìn)的編譯器
在Scala編譯器內(nèi),IDE可以與之掛鉤,提高查找程序結(jié)構(gòu)相關(guān)信息的效率,也為開(kāi)發(fā)IDE插件提供了更好的平臺(tái)。
2、新的生成管理器
可以智能檢測(cè)發(fā)生變化的文件,只編譯需要的Scala源文件,不用每次都執(zhí)行完整的項(xiàng)目生成操作,這個(gè)技術(shù)極大地減少了大項(xiàng)目的編譯時(shí)間。
3、速度改善
編譯器現(xiàn)在運(yùn)行的是優(yōu)化后的代碼,此外,一系列改善措施和精細(xì)的調(diào)整使編譯器速度提升了一半。
Bug修復(fù)
Scala 2.8修復(fù)了數(shù)百個(gè)Bug。
其它工具
1、Scaladoc 2
嶄新的外觀,自動(dòng)化的注解擴(kuò)展和類(lèi)wiki語(yǔ)法,以及編譯時(shí)錯(cuò)誤檢查。
2、Sbaz 2
Sbaz包括許多Bug修復(fù)和改進(jìn),它現(xiàn)在可以使用cmd或cygwin在Windows下正常工作,并增加了自動(dòng)更新功能,增加了對(duì)pack200的支持,在某些情況下,可以將文件大小減少70%。
3、Scalap
包含了由社區(qū)貢獻(xiàn)的新版本Scalap,新的Scalap可以識(shí)別包對(duì)象,并可以使用<package_name>.package來(lái)反編譯包。
4、Scala IDE for Eclipse
重寫(xiě)了Scala IDE,許多功能都轉(zhuǎn)移到編譯器中去了,增強(qiáng)了代碼可維護(hù)性,也便于非Eclipse IDE和其它工具重用,此外,加深了與Eclipse JDT的集成,許多Scala特定的行為和功能現(xiàn)在直接由JDT提供。
原文出處:www.scala-lang.org/node/7009
原文名:Scala 2.8.0 final
【51CTO譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載,合作媒體轉(zhuǎn)載請(qǐng)注明原文出處、作者及51CTO譯稿和譯者!】
【編輯推薦】
- Scala 2.8.0 RC2正式發(fā)布 新特性一覽
- Scala 2.8***個(gè)候選版發(fā)布 Bug修正成重點(diǎn)
- Scala 2.8.0 Beta 1發(fā)布
- Scala 2.8的for表達(dá)式:性能與運(yùn)行順序的改進(jìn)
- Scala 2.8新特性之命名參數(shù)概覽