写点什么

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

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

关注

评论

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

稳定币发行服务:为波动的市场带来稳定

区块链软件开发推广运营

数字藏品开发 dapp开发 区块链开发 链游开发 NFT开发

精进别学N类法:智力活动对象的MECE细分

豆哥

思维模型 MECE 逻辑拆解

十分钟冥想,与自我深入对话,发现更多的可能性。

叶小鍵

快速切换软件One Switch 激活版中文

胖墩儿不胖y

Mac软件 切换工具 切换软件 快速切换软件

《用战略规划的方式做孩子的人生规划》-置顶向下-战略七力

Jxin

育儿 教育 职业生涯规划 战略规划

Mac电脑视频清晰化处理 Perfectly Clear Video激活最新版

mac大玩家j

Mac软件 视频编辑 视频处理工具 视频修复软件

深入解析MySQL双写缓冲区

Java随想录

Java MySQL

代币上市策略:加密货币交易所开发公司的见解

区块链软件开发推广运营

dapp 数字藏品开发 区块链开发 链游开发 NFT开发

强大的Git客户端 Tower for Mac激活码

mac大玩家j

git Mac软件 Git客户端

秋招还没Offer怎么办?

王磊

Java 面试

逻辑拆解基本功:解锁复杂问题的钥匙

豆哥

思维模型 逻辑 MECE 拆解

亚运会线上观赛直播平台开发制作,成品源码快速搭建解决方案

软件开发-梦幻运营部

深度学习模型部署与优化:策略与实践;L40S与A100、H100的对比分析

GPU算力

[大厂实践] 无停机迁移大规模关键流量(下)

俞凡

架构 netflix 大厂实践

如何使用Shardingsphere Proxy分库分表

Kevin_913

数据库 分库分表 中间件 ShardingSphere-Proxy

golang面试基础-sync.pool

Quincy

Go golang 面试 基础

火山引擎ByteHouse:TB级数据下,如何实现高效、稳定的数据导入

字节跳动数据平台

大数据 数据仓库 云原生 企业号9月PK榜

文心一言 VS 讯飞星火 VS chatgpt (106)-- 算法导论10.1 4题

福大大架构师每日一题

福大大架构师每日一题

功能强大的ftp工具 Viper FTP 免激活最新版

胖墩儿不胖y

ftp Mac软件 ftp传输

ES 关于 remote_cluster 的一记小坑

极限实验室

easysearch

只有1%的人知道的Mysql性能优化,却能让你系统提速100%,开发效率翻倍!

程序员万金游

MySQL性能优化 MySQL 高可用 #java java 架构 #Mysql

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