写点什么

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

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

关注

评论

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

念念不忘,必有回响!6月更文活动的一些总结

编程三昧

程序员 程序人生 代码人生

2021最新一线大厂Java高级架构师面试题总结,上线3天获22w浏览量

Java 编程 程序员 架构 面试

极客时间-排位赛可视化工具

IT蜗壳-Tango

7月日更

ES6中扩展运算符的8种用法

devpoint

数组去重 ES6 扩展运算符

Redisson 分布式锁源码 01:可重入锁加锁

程序员小航

Java redis 源码 分布式锁 redisson

5分钟速读之Rust权威指南(三十四)面向对象

wzx

rust

话题讨论|你知道集群、分布式、微服务区别吗?

Emotion

分布式 微服务 话题讨论 集群 话题王者

PowerShell 数组

耳东@Erdong

PowerShell 7月日更

Ant蚂蚁挖矿系统软件开发资料

数据结构——树和二叉树

若尘

数据结构 二叉树

对象存储手把手教一 | 用户数据访问控制管理ACL

QingStor分布式存储

云原生 对象存储 分布式存储

Java入门到架构-优秀书籍

Java入门到架构

Java 架构 入门 书籍

Linux之tail命令

入门小站

Linux

Rust从0到1-Cargo-自定义构建

rust build cargo 构建

流量为王时代的短视频平台如何确保内容质量?|【话题讨论】

老猿Python

技术 内容审核 流量为王 负能量

CodeDay#7 启动 | 北京欢迎你

蚂蚁集团移动开发平台 mPaaS

小程序 webview 移动开发 mPaaS

推荐系统提供web服务的2种方式(二十四)

Databri_AI

算法 推荐系统 web服务

在线HTML实体转字符串工具

入门小站

工具

.NET CORE 对象池简述

喵叔

7月日更

云原生领域的一些技术展望

名白

容器 云原生 Service Mesh service

网络攻防学习笔记 Day61

穿过生命散发芬芳

网络攻防 7月日更

【LeetCode】雪糕的最大数量Java题解

Albert

算法 LeetCode 7月日更

业务架构模块7 作业 王者荣耀商城异地多活

好吃不贵

业务架构

为什么 FaaS 系统的复杂性不会随着规模的增长而指数增长?

朱峰 Ben

Serverless Faas

“懂行人”合力共建“强富美高”数字经济助力千载金陵的数字一跃

脑极体

“Windows 找不到文件...”,怎么处理?

Emotion

windows 系统 找不到系统文件 windows找不到文件

李某逆道而行闭关三月,直接四杀斩获阿里/腾讯/京东/百度等大厂offer

Java架构师迁哥

(VMware)ubuntu 环境下搭建 docker 镜像私服

逸少

Docker 镜像仓库

08 | 指针系列(二):记住,指针变量也是变量

Nydia

架构思考

zk

微信 架构 微信业务架构

【Flutter 专题】98 易忽略的【小而巧】的技术点汇总 (六)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

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