写点什么

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

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

关注

评论

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

毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题

Java spring Spring Boot 框架

PoseiSwap:合规、隐私与支持更广泛的资产

股市老人

Logstash同步MySQL关联表到Elasticsearch的嵌套文档中

北桥苏

elasticsearch Logstash ELK Stack

逆袭!阿里专家手码23版Java面试三件套,Github星标直线狂飙

Java你猿哥

Java 微服务 面经 算法题 java核心知识点

单调栈模板总结及应用

timerring

算法

Windows下hadoop环境搭建之NameNode启动报错

北桥苏

大数据 hadoop

背废完虐面试官!字节架构师8年心血终成《图解设计模式》手册

Java 设计模式

BOSS直聘首发半小时被下架!300MB实战SpringBoot笔记爆赞过百万

Java spring Spring Boot 框架

浅谈Kafka2.8+在Windows下的搭建与使用

北桥苏

php scala kafka

n-Track Studio 9录音、音频编辑一站式完成!

真大的脸盆

Mac 音频制作 Mac 软件 音频处理 录音工具

Logstash如何批量同步MySQL多表到ElasticSearch

北桥苏

elasticsearch Logstash ELK Stack

由Elasticsearch7.8评分脚本引起的一个索引迁移解决方法

北桥苏

elasticsearch Logstash ELK Stack

独一份,15年经验汇聚而成的《SpringBoot“踩坑”手册》首次开源

Java spring Spring Boot 框架

简单聊聊Java中线程安全有哪些实现思路?

Java 多线程

SocketLog 的基本使用

北桥苏

php thinkphp SocketLog

干货力荐!京东首席架构师:亿级流量架构的核心技术文档

Java 架构 亿级流量

Logstash同步MySQL一对多关联表到Elasticsearch父子文档

北桥苏

elasticsearch Logstash ELK Stack

关于 PHP 启动 MongoDb 找不到指定模块问题

北桥苏

php mongodb

windows下Hive搭建踩坑汇总

北桥苏

hadoop hive hql

平台工程 | 内部开发者门户权威指南

杨振涛

DevOps 平台 平台工程 内部开发者平台 内部开发门户

在Inteillj IDEA中使用Spark操作Hive

北桥苏

spark hive Big Data

程序员晋升指南!13年顶级架构设计经验的锦囊妙计与实践分享

Java你猿哥

Java 架构 ssm 架构设计 架构师

如何通过Logstash将MySQL数据同步到ElasticSearch

北桥苏

php MySQL elasticsearch Logstash

PoseiSwap:合规、隐私与支持更广泛的资产

鳄鱼视界

深入解析Java适配器模式:将接口转换为你所需要的形式

Java 适配器

用扩展的方式在 PHP 中使用 Kafka

北桥苏

php Kakfa

最简单的canal 1.1.6服务搭建方法

北桥苏

elasticsearch canal

Github火到CSDN, 字节高级架构师亲码出 elasticsearch 实战手册

Java 搜索引擎 elasticsearch ES

如何让ESP8266板子像APP开发一样方便

北桥苏

php 物联网 esp8266 mqtt

如何在业务代码中使用 ThinkPHP5.1 封装的容器内反射方法

北桥苏

thinkphp 反射调用

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