写点什么

Kotlin 1.1 路线图

  • 2016-06-12
  • 本文字数:932 字

    阅读完需:约 3 分钟

Kotlin 的开发正向着 1.1 版本迈进;Kotlin 语言主要设计者 Andrey Breslav介绍了JetBrains 这门JVM 语言新版本的路线图,该版本会包含重大的新语言特性。

Kotlin 1.1 将提供以下新语言特性。

  • 类型别名旨在为比较长的类型声明提供一种缩写机制,比如函数签名;类型别名不会引入新的类型,可以与原始定义互换使用。
  • 扩展 **绑定方法引用 **,支持引用对象成员。这样,你就可以引用String对象的equals方法,并赋给一个 Predicate 对象供后续使用:val p: Predicate<String> =“foo”::equals。Kotlin 1.0.x 已经支持类型引用。
  • 允许在类或函数的最顶层定义 **委托属性 **: ```
    fun foo() {
    val lazyBar by lazy { … }
    while (…) {
    if (…) {
    lazyBar.doBaz()

    }
    }
    }
复制代码
委托属性提供了一种机制,可以一次性实现所有像 lazy、observable 和 map-stored 这样的特定类型的属性,这样就不需要每次都实现它们。
- **[数据类](https://kotlinlang.org/docs/reference/data-classes.html)** 将支持继承,这就提供了从另外一个类派生出一个数据类的可能。数据类是那些只包含数据的类,Kotlin 会自动生成存取器、`equals`、`hashCode`和其他通用方法。这还提供了在一个密封类中扩展数据类的可能: ```
sealed class C() {
data class Example(...) : C()
}
  • 解构允许为 lambdas 参数传递组合名称,参见下面的例子,forEach的键值对参数解构成了两个部分: ```
    myMap.forEach {
    (k, v) ->
    println(“$k => $v”)
    }
复制代码
- **coroutines** 是 Kotlin 异步行为的基础。据 Breslav 介绍,coroutines 比 C# 5 引入的`async/await`模型更一般化。Kotlin 也将提供`async/await`,但是以 coroutines 为基础构建,而不是作为原语: ```
fun loadImage(url: URL) = async {
val bytes = await(loadBytes(url))
bytesToImage(bytes)
}

在工具方面,Kotlin 1.1 将直接支持 Java 8/9 特性,如默认方法生成。此外,JavaScript 后端将与实际的语言功能集保持一致。

Kotlin 的开发由 Kotlin Evolution and Enhancement Process(KEEP)推动,并依托一个 GitHub 库描述了所有计划的应用场景。

Kotlin 1.1 的源代码和二进制文件都兼容以前的版本,也就是说,新版本的 Kotlin 编译器不会破坏同旧源代码和二进制文件的兼容性。

查看英文原文 The Roadmap to Kotlin 1.1

2016-06-12 19:003110
用户头像

发布了 1008 篇内容, 共 443.8 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

进化政企智能化,华为WeAutomate 3.0重磅发布

今日谈:BoltDB数据库,一款纯Go实现的KV数据库

Regan Yue

Go 语言 11月日更

一份数据的6种Plotly画法

Peter

数据分析 可视化

☕【Java技术指南】「技术盲区」看看线程池是如何回收和维持运作线程的核心技术体系

码界西柚

Java 线程池 11月日更

助力政企自动化自然生长,华为WeAutomate RPA是怎么做到的?

网络安全之浏览器端的威胁要塞防御

喀拉峻

网络安全 安全 信息安全

Serverless 下的微服务实践

阿里巴巴云原生

阿里云 Serverless 微服务 云原生 SAE

.NET Core 中对象池(Object Pool)的使用

喵叔

11月日更

【死磕Java并发】-----Java内存模型之从JMM角度分析DCL

chenssy

11月日更 死磕 Java 死磕 Java 并发

在线等比数列项数生成器

入门小站

工具

完善Django的MVT框架开发,记得添加路由哦~

老表

Python django web开发 11月日更 博客系统

Electron常见问题 48 - Electron 获取本机 MAC 地址

liuzhen007

11月日更

Python Qt GUI设计:QMainWindow、QWidget和QDialog窗口类(基础篇—10)

不脱发的程序猿

PyQt GUI设计 QMainWindow QWidget QDialog

不用找了,这本书帮你完全搞定Spring Cloud Alibaba

胡弦(关注公众号架构随笔录)

分布式架构 spring cloud alibaba

又谈mysql,面试官问表结构设计要注意啥?

微客鸟窝

MySQL 11月日更

linux总结10大危险命令

入门小站

Linux

Python中的控制流:break和continue

Peter

Python 控制流

【网络安全】这份近200页应急响应文档,帮助了不少安全逆子

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

架构实战 - 模块四

唐敏

「架构实战营」

OpenMLDB 11 月份社区会议纪要

第四范式开发者社区

第四范式 开源社区 OpenMLDB 机器学习数据库

前缀和后缀运算符有什么区别?

devpoint

JavaScript 11月日更 前缀运算符 后缀

架构实战营模块6课后作业:小程序电商业务微服务

胡颖

架构实战营

元宇宙、区块链和潘家园

脑极体

18 K8S之存储卷简述

穿过生命散发芬芳

k8s 11月日更

如何设计高性能高可用存储架构

天天向上

架构实战营

[Pulsar] Delayed message原理

Zike Yang

Apache Pulsar 11月日更

虚拟办公、虚拟展会、虚拟偶像,RTE+XR 还能做什么?

RTE开发者社区

人工智能 vr Metaverse

用户任务三步法:教你读懂用户

石云升

11月日更 产品创新

阿里云 EventBridge 事件驱动架构实践

阿里巴巴云原生

阿里云 云原生 事件驱动 事件驱动架构 EventBridge

“零信任”的世界,让女性更安全

脑极体

redo Log 的持久化过程

卢卡多多

Redo Log 11月日更

Kotlin 1.1路线图_Java_Sergio De Simone_InfoQ精选文章