当前位置:新闻中心行业动态 → 正文

Kotlin 1.2引入多平台项目特性

责任编辑:editor004 作者:Sergio De Simone |来源:企业网D1Net  2017-12-05 11:16:13 本文摘自:INFOQ

最新版本的Kotlin通过多平台项目支持JVM和JavaScript平台的代码共享。除此之外,它还带来了语言和类库方面的大量改进,以及更好的编译器性能。

Kotlin在1.1版本中就已引入了对JavaScript的支持,而最新版本的Kotlin让开发者可以很方便地管理在JVM和JavaScript平台上运行的项目。因为有了Kotlin Native,在未来还将支持本地二进制包。

多平台项目(multi-platform project)的基本原理是按照一定的方式来组织项目模块,如一系列公共模块和平台特定模块。平台特定模块所包含的代码要么是运行在JVM上,要么是运行在JavaScript平台上,可以自由访问相应平台的包。每一个平台特定模块都需要一个公共模块,这些公共模块提供了所谓的“预期声明(expected declaration)”,平台特定模块必须实现这些声明。因为有了这种机制,平台独立代码可以调用平台特定代码。公共模块只能包含Kotlin代码,也只能使用Kotlin的包,而平台特定模块可以包含Java或JavaScript代码,它们可以被编译成特定的格式。

下面是如何定义公共模块和相应平台模块的例子:

// Common modulepackage org.jetbrains.fooexpect class Foo(bar: String) { fun frob()}fun main(args: Array) { Foo("Hello").frob()}// JVM modulepackage org.jetbrains.fooactual class Foo actual constructor(val bar: String) { actual fun frob() { println("Frobbing the $bar") }}

一些跨平台库为Kotlin在公共模块方面带来了更强大的能力,包括一个序列化库、一个测试库和一个HTML同构库。

在语言方面,Kotlin 1.2为某些场景提供了改进的智能类型转换和类型推断,标准库中新增了kotlin.math包,序列和集合中也加入了新的标准库函数。

Kotlin 1.2中的编译器变得更快了,比1.1要快25%。在后续的次要版本中,编译器性能将会有进一步的提升。

Kotlin 1.2已经被绑定到IntelliJ IDEA 2017.3当中,可以从官方的发布说明中看到更多相关信息。

查看英文原文:Kotlin 1.2 Introduces Multi-Platform Projects

关键字:Kotlin模块多平台

本文摘自:INFOQ

x Kotlin 1.2引入多平台项目特性 扫一扫
分享本文到朋友圈
当前位置:新闻中心行业动态 → 正文

Kotlin 1.2引入多平台项目特性

责任编辑:editor004 作者:Sergio De Simone |来源:企业网D1Net  2017-12-05 11:16:13 本文摘自:INFOQ

最新版本的Kotlin通过多平台项目支持JVM和JavaScript平台的代码共享。除此之外,它还带来了语言和类库方面的大量改进,以及更好的编译器性能。

Kotlin在1.1版本中就已引入了对JavaScript的支持,而最新版本的Kotlin让开发者可以很方便地管理在JVM和JavaScript平台上运行的项目。因为有了Kotlin Native,在未来还将支持本地二进制包。

多平台项目(multi-platform project)的基本原理是按照一定的方式来组织项目模块,如一系列公共模块和平台特定模块。平台特定模块所包含的代码要么是运行在JVM上,要么是运行在JavaScript平台上,可以自由访问相应平台的包。每一个平台特定模块都需要一个公共模块,这些公共模块提供了所谓的“预期声明(expected declaration)”,平台特定模块必须实现这些声明。因为有了这种机制,平台独立代码可以调用平台特定代码。公共模块只能包含Kotlin代码,也只能使用Kotlin的包,而平台特定模块可以包含Java或JavaScript代码,它们可以被编译成特定的格式。

下面是如何定义公共模块和相应平台模块的例子:

// Common modulepackage org.jetbrains.fooexpect class Foo(bar: String) { fun frob()}fun main(args: Array) { Foo("Hello").frob()}// JVM modulepackage org.jetbrains.fooactual class Foo actual constructor(val bar: String) { actual fun frob() { println("Frobbing the $bar") }}

一些跨平台库为Kotlin在公共模块方面带来了更强大的能力,包括一个序列化库、一个测试库和一个HTML同构库。

在语言方面,Kotlin 1.2为某些场景提供了改进的智能类型转换和类型推断,标准库中新增了kotlin.math包,序列和集合中也加入了新的标准库函数。

Kotlin 1.2中的编译器变得更快了,比1.1要快25%。在后续的次要版本中,编译器性能将会有进一步的提升。

Kotlin 1.2已经被绑定到IntelliJ IDEA 2017.3当中,可以从官方的发布说明中看到更多相关信息。

查看英文原文:Kotlin 1.2 Introduces Multi-Platform Projects

关键字:Kotlin模块多平台

本文摘自:INFOQ

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^