武汉的开发者们注意啦!AI技术战略、框架以及最佳实战尽在Azure OpenAI Day 了解详情
写点什么

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

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

关注

评论

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

记中山公园全马--一场无准备的马

wood

跑步 300天创作

【架构实战营】模块九作业

liu🍊

物联网场景中灵活实施对设备的控制管理

亚马逊云科技 (Amazon Web Services)

loT

ReactNative进阶(十九):React Native 按钮 Touchable 系列组件使用详解

No Silver Bullet

​React Native 1月月更 Touchable

低代码实现探索(二十)功能的路径

零道云-混合式低代码平台

架构实战营模块九作业

孙志强

架构实战营

物联网场景中灵活实施对设备的控制管理

亚马逊云科技 (Amazon Web Services)

loT

一条 Git 命令减少了一般存储空间,我的服务器在偷着笑

沉默王二

毕业设计

Geek_cb2b43

Three.js 入门指南

devpoint

WebGL 3D渲染 three.js 1月月更

zip文件自动打包

你?

为什么您的企业需要移动CRM系统

低代码小观

移动 CRM CRM系统 客户关系管理系统 企业管理工具

hw9-毕业项目设计

WWH

架构实战营

架构实战营 第 4 期 模块五作业

架构实战营 模块五 「架构实战营」

手把手教程|通过部署 Apache Superset 实现 Amazon S3 的数据可视化

亚马逊云科技 (Amazon Web Services)

analytics

特聘专家朱嘉明:2022,数字经济迈入历史新阶段

CECBC

云原生训练营 毕业总结

张大彪

云原生

电商秒杀系统设计

天天向上

架构实战营

Go 语言快速入门指南:Go 指针

宇宙之一粟

指针 Go 语言 1月月更

5Why根因分析法:通过好问题引出一个好答案

石云升

1月月更 分析方法

架构实战营-毕业设计

21°Char

设计电商秒杀系统

Mars

架构实战营 「架构实战营」

架构实战营-毕业设计

瓜子葫芦侠

「架构实战营」

模块五

Only

架构实战营 「架构实战营」

架构训练营 毕业设计

吴霏

架构训练营 「架构实战营」

Hoo虎符研究院 | 投资前沿——过去一周顶级投资机构动向

区块链前沿News

虎符 Hoo 虎符交易所 区块链投资

低代码实现探索(二十一)微流动作返回值类型

零道云-混合式低代码平台

基于Mysql,ssm食材采购系统

叫练

ssm 餐厅采购

设计电商秒杀系统

Steven

架构实战营

当使用Vue2+Babel时,如何实现组件重新渲染

DisonTangor

Vue babel

一文带你快速了解 Java 线上问题快速诊断神器 Arthas

zuozewei

性能测试 Java性能 性能分析 Arthas 1月月更

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