写点什么

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:002650
用户头像

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

关注

评论

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

[python基础]3 python数据类型下篇(不得不看的字典,列表大总结)

我是程序员小贱

如何选择:Bootstrap Or Layui

引花眠

bootstrap layui

ARTS打卡 第12周

引花眠

微服务 ARTS 打卡计划

区块链技术--公证人机制

CECBC

区块链 数字货币 公证人

正则表达式位置匹配——匹配两个特殊符号中间的内容

jerry.mei

Java 正则表达式 大前端 字符串匹配

JDK中居然也有反模式接口常量

看山

Java 源码阅读

航运区块链 抗疫危中有机

CECBC

区块链 航运

结算场景下的跳坑记

李印

螺旋矩阵算法,臭代码解析,微服务架构 Service Mesh 服务网格 RPC 协议实现原理 Dubbo 通讯协议,John 易筋 ARTS 打卡 Week 13

John(易筋)

ARTS 打卡计划

python必备知识总结

我是程序员小贱

SpringBoot系列(八):SpringBoot 中的事务处理

xcbeyond

Java 微服务 事务 springboot

准时下班的秘密:集成 GitLab && JIRA 实现自动化工作流

Phoenix

团队协作 研发效能

ARTS Week12

时之虫

ARTS 打卡计划 arts

全面了解CGI、FastCGI、PHP-FPM

书旅

CGI PHP-FPM Fast-CGI

这些年看过的Linux相关书籍推荐

我是程序员小贱

spark学习之IDEA配置spark并wordcount提交集群

我是程序员小贱

Bash 脚本的单元测试

柴锋

bash Linux DevOps Unit Test Shell

16张图入门Nginx——(前端够用,运维入门)

执鸢者

nginx 运维 大前端

SpringBoot系列(七):SpringBoot 中使用Redis缓存

xcbeyond

Java redis 微服务 springboot

Java统一异常处理(配置文件集中化定义)

xcbeyond

Java 架构 后端 统一异常

一次由默认参数引起的思考

白日梦想家

编程 思考

[python基础]2 python数据类型上篇

我是程序员小贱

异常处理的那些事儿

松花皮蛋me

Java 设计模式

IT人为什么难以拿高薪?

看山

成长 随笔杂谈 薪资 心灵鸡汤

ARTS 07 - 使用 supervisor 配置 ngrok 内网穿透为守护进程

jerry.mei

算法 练习 ARTS 打卡计划 ARTS活动 内网穿透

华为的“少年天才”攀登者,出发向智能存储的“奥林帕斯山”

脑极体

这样看mybatis,谁都会分析源码!

诸葛小猿

源码 mybatis mybatis源码

Nginx之反向代理

xcbeyond

nginx 反向代理 代理

蓝绿部署、金丝雀发布(灰度发布)、AB测试

看山

微服务 持续集成

目前数字人民币试点仍是“4+1” 别误读了

CECBC

数字货币 央行 人民币

SICP,我的函数式编程启蒙书

Kurtis Moxley

读书 函数式编程

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