近日,JetBrains 开发者 Alexey Sedunov 在其官方博客上正式宣布 Kotlin 1.2 第二个里程碑版本发布。这个版本的主要关注点是 Kotlin 编译器和工具的稳定性及 bug 的修复,以及对 Kotlin 标准库的改进。它同时也包含了很多在即将发布的 Kotlin 1.1.4 版本中所具备的工具特性。
到目前为止,Kotlin 接口成员重写 Java-default 方法,如果目标运行时是 JVM 1.6 的话会在编译时产生一个警告:Kotlin 子类中对父类 Java-default 方法的调用在 JVM target 1.6 已经废弃,请重新使用 -jvm-target 1.8
参数进行编译。在 1.2-M2 版本中我们使用错误来代替警告,因此要求所有这类代码都使用 -jvm-target 1.8
参数进行编译。
我们已经听取大家关于 KEEP-11(https://github.com/Kotlin/KEEP/blob/master/proposals/stdlib/window-sliding.md) 中 chunked/windowed/pairwise 函数的反馈,这些函数是在前一个里程碑 1.2-M1 中作为预览功能发布的,在这个基础上我们决定对这些函数做一些修改:
windowed
函数现在拥有一个默认值为 1 的步进参数,同时也增加了一个额外的可选参数 partialWindows
,用来控制如何处理后不完整的窗口。默认情况下它是 false,表示丢弃不完整的窗口。
pairwise
的函数名太令人困惑,从名字看不出来它如何将元素组合在一起。现在它被称为 zipWithNext
,从名字可以更清楚的看出这个函数的操作是将集合中每个元素和下一个元素做压缩处理。
长期以来要求在标准库 KT-4900(https://youtrack.jetbrains.com/issue/KT-4900) 中支持数学操作的请求不绝于耳。直到现在在 JVM 平台上我们只能求助于 java.lang.Math
类提供的数学函数和常量,在 JS 平台上只能求助于 kotlin.js.Math
暴露的原生 JS 数学函数给 Kotlin 代码。但是,现在我们将介绍 kotlin.math
包中的下列 API 组合:
PI
和 E
cos
, sin
, tan
和它们的反操作: acos
, asin
, atan
, atan2
;
cosh
, sinh
, tanh
pow
(扩展函数),sqrt
, hypot
, exp
, expm1
log
, log2
, log10
, ln
, ln1p
ceil
, floor
, truncate
, round
(half to even,译者注:向接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入)函数 ;
roundToInt
, roundToLong
(half to integer) 扩展函数。
abs
和 sign
函数
absoluteValue
和 sign
扩展属性
withSign
扩展函数
max
和 min
ulp
扩展属性
nextUp
, nextDown
, nextTowards
扩展函数
toBits
, toRawBits
, Double.fromBits
(这些函数位于 kotlin
包中)
对于 Float
参数也提供了同样的函数集(除了常量),这些函数大多数在 JS 中也可用(除了二进制表示中的函数),从而解决了需要为不同平台编写两套相同计算代码的问题。
与其他里程碑版本一样,我们不会为新语言和库特性提供向后兼容性的保证。在 1.2 的里程碑版本中引入的任何东西在 1.2 的终版本发布之前都会发生更改。当我们到达终的 RC 版本,通过预发布版本生成的所有二进制包都会被编译器认为不合法:你将被要求重新编译之前使用 1.2-Mx 版本编译过的任何代码。当然所有使用 1.1.x 版本或者更早发布版本编译的代码不需要重新编译也可以完美的运行。
在 Maven/Gradle 中:在工程的构建脚本中添加 http://dl.bintray.com/kotlin/kotlin-eap-1.2
作为 repository,并将 Kotlin 编译插件和标准库的版本号修改为 1.2-M2
。
在 IntelliJ IDEA 中:点选菜单 Tools → Kotlin → Configure Kotlin Plugin Updates,接着在 Update channel 下拉列表中选择 “Early Access Preview 1.2”,然后点击 Check for updates。
命令行编译器可以在 Github 发布页面(https://github.com/JetBrains/kotlin/releases/tag/v1.2-M2)进行下载。
在 try.kotlinlang.org(https://try.kotlinlang.org/) 中:使用右下角的下拉列表可以更改编译器的版本为 1.2-M2(即将开放)。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。