近日,JetBrains 開發(fā)者 Alexey Sedunov 在其官方博客上正式宣布 Kotlin 1.2 第二個里程碑版本發(fā)布。這個版本的主要關(guān)注點是 Kotlin 編譯器和工具的穩(wěn)定性及 bug 的修復(fù),以及對 Kotlin 標(biāo)準庫的改進。它同時也包含了很多在即將發(fā)布的 Kotlin 1.1.4 版本中所具備的工具特性。
到目前為止,Kotlin 接口成員重寫 Java-default 方法,如果目標(biāo)運行時是 JVM 1.6 的話會在編譯時產(chǎn)生一個警告:Kotlin 子類中對父類 Java-default 方法的調(diào)用在 JVM target 1.6 已經(jīng)廢棄,請重新使用 -jvm-target 1.8 參數(shù)進行編譯。在 1.2-M2 版本中我們使用錯誤來代替警告,因此要求所有這類代碼都使用 -jvm-target 1.8 參數(shù)進行編譯。
我們已經(jīng)聽取大家關(guān)于 KEEP-11(https://github.com/Kotlin/KEEP/blob/master/proposals/stdlib/window-sliding.md) 中 chunked/windowed/pairwise 函數(shù)的反饋,這些函數(shù)是在前一個里程碑 1.2-M1 中作為預(yù)覽功能發(fā)布的,在這個基礎(chǔ)上我們決定對這些函數(shù)做一些修改:
windowed 函數(shù)現(xiàn)在擁有一個默認值為 1 的步進參數(shù),同時也增加了一個額外的可選參數(shù) partialWindows,用來控制如何處理后不完整的窗口。默認情況下它是 false,表示丟棄不完整的窗口。
pairwise 的函數(shù)名太令人困惑,從名字看不出來它如何將元素組合在一起。現(xiàn)在它被稱為 zipWithNext,從名字可以更清楚的看出這個函數(shù)的操作是將集合中每個元素和下一個元素做壓縮處理。
長期以來要求在標(biāo)準庫 KT-4900(https://youtrack.jetbrains.com/issue/KT-4900) 中支持數(shù)學(xué)操作的請求不絕于耳。直到現(xiàn)在在 JVM 平臺上我們只能求助于 java.lang.Math 類提供的數(shù)學(xué)函數(shù)和常量,在 JS 平臺上只能求助于 kotlin.js.Math暴露的原生 JS 數(shù)學(xué)函數(shù)給 Kotlin 代碼。但是,現(xiàn)在我們將介紹 kotlin.math 包中的下列 API 組合:
PI 和 E
cos, sin, tan 和它們的反操作: acos, asin, atan, atan2;
cosh, sinh, tanh
pow(擴展函數(shù)),sqrt, hypot, exp, expm1
log, log2, log10, ln, ln1p
ceil, floor, truncate, round (half to even,譯者注:向接近數(shù)字方向舍入的舍入模式,如果與兩個相鄰數(shù)字的距離相等,則向相鄰的偶數(shù)舍入)函數(shù) ;
roundToInt, roundToLong (half to integer) 擴展函數(shù)。
abs 和 sign 函數(shù)
absoluteValue 和 sign 擴展屬性
withSign 擴展函數(shù)
max 和 min
ulp 擴展屬性
nextUp, nextDown, nextTowards 擴展函數(shù)
toBits, toRawBits, Double.fromBits(這些函數(shù)位于 kotlin 包中)
對于 Float 參數(shù)也提供了同樣的函數(shù)集(除了常量),這些函數(shù)大多數(shù)在 JS 中也可用(除了二進制表示中的函數(shù)),從而解決了需要為不同平臺編寫兩套相同計算代碼的問題。
與其他里程碑版本一樣,我們不會為新語言和庫特性提供向后兼容性的保證。在 1.2 的里程碑版本中引入的任何東西在 1.2 的終版本發(fā)布之前都會發(fā)生更改。當(dāng)我們到達終的 RC 版本,通過預(yù)發(fā)布版本生成的所有二進制包都會被編譯器認為不合法:你將被要求重新編譯之前使用 1.2-Mx 版本編譯過的任何代碼。當(dāng)然所有使用 1.1.x 版本或者更早發(fā)布版本編譯的代碼不需要重新編譯也可以完美的運行。
在 Maven/Gradle 中:在工程的構(gòu)建腳本中添加 http://dl.bintray.com/kotlin/kotlin-eap-1.2 作為 repository,并將 Kotlin 編譯插件和標(biāo)準庫的版本號修改為 1.2-M2。
在 IntelliJ IDEA 中:點選菜單 Tools → Kotlin → Configure Kotlin Plugin Updates,接著在 Update channel 下拉列表中選擇 “Early Access Preview 1.2”,然后點擊 Check for updates。
命令行編譯器可以在 Github 發(fā)布頁面(https://github.com/JetBrains/kotlin/releases/tag/v1.2-M2)進行下載。
在 try.kotlinlang.org(https://try.kotlinlang.org/) 中:使用右下角的下拉列表可以更改編譯器的版本為 1.2-M2(即將開放)。
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個個人學(xué)習(xí)交流的平臺,網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對此聲明的最終解釋權(quán)。