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