阅读更多
引用
原文:Kotlin 1.2 M2 is out
作者:Alexey Sedunov
翻译:顾浩鑫
审校:苏宓,欢迎技术投稿、约稿、给文章纠错,请发送邮件至tumin@csdn.net。

近日,JetBrains 开发者 Alexey Sedunov 在其官方博客上正式宣布 Kotlin 1.2 第二个里程碑版本发布。这个版本的主要关注点是 Kotlin 编译器和工具的稳定性及 bug 的修复,以及对 Kotlin 标准库的改进。它同时也包含了很多在即将发布的 Kotlin 1.1.4 版本中所具备的工具特性。

从 1.2 M1 版本之后的完整修改记录可以在这里查看,下面将列出一些主要的变化。

编译器
重大修改:Java-default 方法调用

到目前为止,Kotlin 接口成员重写 Java-default 方法,如果目标运行时是 JVM 1.6 的话会在编译时产生一个警告:Kotlin 子类中对父类 Java-default 方法的调用在 JVM target 1.6 已经废弃,请重新使用 -jvm-target 1.8 参数进行编译。在 1.2-M2 版本中我们使用错误来代替警告,因此要求所有这类代码都使用 -jvm-target 1.8 参数进行编译。

标准库
修正 windowed/pairwise 操作

我们已经听取大家关于 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) 扩展函数。
  • sign 和绝对值
  •         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(即将开放)。
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • JBuilder9.0简要教程[整理].pdf

    JBuilder9.0简要教程[整理].pdf

  • jbuilder 9.0教程

    jbuilder 9.0教程~~~~~~~~~~~~`

  • 图解Java开发工具JBuilder9.0.pdf

    图解Java开发工具JBuilder9.0.pdf

  • 图解jbuilder 9.0开发工具

    详细介绍 jbuilder9.0如何使用,和一些菜单的具体功能

  • 使用JBuilder9.0开发

    有关使用JBuilder9.0开发的资源

  • kotlin之如何将IDEA上的kotlin版本从1.2提升到1.3

    kotlin之如何将IDEA上的kotlin版本从1.2提升到1.3前言更新最新的编译依赖重启IDEA生效我们的kotlin的编译环境 前言 由于我们的kotlin的协程需要1.3版本以上的kotlin,但是IDEA的2019版本里面并没有将kotlin支持到1.3...

  • setup-kotlin:在GitHub Actions中设置Kotlin:trade_mark:cli编译器

    在GitHub Actions中设置 cli编译器 此操作将下载Kotlin:trade_mark:编译器并将其安装到路径中。 它不会碰到已安装的JRE。 默认情况下,将安装Kotlin的最新发行版本。 可以通过version标志覆盖它。 它允许您使用...

  • Kotlin 1.2 新特性

    在Kotlin 1.1中,团队正式发布了JavaScript目标,允许开发者将Kotlin代码编译为JS并在浏览器中运行。在Kotlin 1.2中,团队增加了在JVM和JavaScript之间重用代码的可能性。现在,使用Kotlin编写的代码,可以在所有的...

  • kotlin-compile-testing:一个用于测试Kotlin和Java注释处理器,编译器插件和代码生成的库

    本着的精神,用于Kotlin和Java代码的进程内编译的库。 例如,您可以使用此库来测试注释处理器或编译器插件。 用例 在测试中编译Kotlin和Java代码 测试注释处理器 测试编译器插件 测试Kotlin代码生成 例 建立来源 ...

  • ie java plugin_关于手动给ie加java plugin ,并且使用JBUILDER9下面自带的JDK

    如果次要运行带有swing的applet,总要安装一次jdk(从sun download的),有时机器里竟同时又好几个jdk,什么jbuilder的,weblogic的,bea server,从sun download的,等等,是不是太多了呢?机器有点乱,其实除了application server 以及其他的servlet(ejb)container,如果要单独运行jdk,会提高服务器的效率(其...

  • 还有人用JBuilder9吗? 又被恶心了一回

    各种原因,好无奈还要用jb9,tomcat4。 今天被一个离奇的bug吓到的了,tomcat4启动本地网站后,竟然把web.xml文件给清空到只剩xml头尾。查了很久,才发现,jb打开的xxxxxxxxx\web. xml。竟然和它指向的路径的文件不一致,什么鬼,重启还是一样,难道有缓存的?每次一启动就覆盖磁盘上相同路径相同名字的附件。 解决:备份正确的文件,然后在jb里面删除那个有问题web

  • 解决jbuilder运行后tomcat下conf目录server8080.xml文件自动消失的问题

    在使用JBuilder9创建j2ee wep application时,JB会自动创建一个Server8080.xml的文件放在源程序的Tomcat目录,启动tomcat后这个文件每次都重新生成,关闭tomcat后又自动消失了。所以在这里面配置了连接池等等是没有用的。看了server8080.xml第二行的注释:                          如果想自己手动配置serv

  • tomcat连接mysql及JDBC详解

    Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于有了 Sun 的参与和支持,最新的 Servlet 和JSP 规范总是能在 Tomcat 中得到体现,Tomcat 5 支持最新的 Servlet 2.4 和 JSP 2.0 规范。...

  • JBuilder 9 IDE简介

     Borland JBuilder是全球第一的跨平台Java集成开发环境(IDE),可以用于构建符合工业标准的Java应用系统,开发EJB、Web、XML以及数据库等各类应用程序。双向、可视化设计工具使得我们可以快速的构建各种J2EE应用程序,并部署至多种应用程序服务器,包括BEA WebLogic、IBM WebSphere、Sun ONE Application Server、Oracle

  • kotlin最新版编译器

    kotlin编译环境, 直接在命令行编译运行kotlin的kt文件的必备库

Global site tag (gtag.js) - Google Analytics