Skip to content
This repository has been archived by the owner on Apr 13, 2023. It is now read-only.

Latest commit

 

History

History
28 lines (23 loc) · 2.2 KB

M9 is here!.md

File metadata and controls

28 lines (23 loc) · 2.2 KB
title date author tags keywords categories reward reward_title reward_wechat reward_alipay source_url translator translator_url
[译]M9 is here!
2014-10-15 11:38:00 -0700
Hadi Hariri
官方动态
false
Have a nice Kotlin!

M9 已经到来,它带来了许多新功能和重要变化。我们已经 突出显示这些覆盖别人的细节 。我们深入了解其他一些改进

语言变化

**注意:**下面的一些更改是破坏更改,这意味着可以使用早期版本编译的一些代码将不再编译,因此您需要更正它。

平台类型

和我们一样 前面提到过 ,平台互操作性(即 Java 和 JavaScript 互操作性)是我们的首要任务之一,因为这对我们的用户来说是如此。与 Java 进行互操作时,可疑性的问题是我们获得的最大的投诉之一。简而言之,问题是来自 Java 的任何引用可能都是null*,而且通过设计无效的 Kotlin 迫使用户对每个 Java 值进行空值检查,或者使用**(?。)或不空的断言!!)。那些在纯 Kotlin 世界中非常方便的功能,当您必须在 Kotlin / Java 设置中经常使用它们时,往往会变成灾难。我们依靠 外部注释KAnnotator 通过增加具有额外类型信息的 Java 来缓解此问题。这种方法证明是太麻烦了,在某些情况下不起作用。 这就是为什么我们采取了一个激进的方法,并使得 Kotlin 的类型系统更加轻松,当涉及到 Java 互操作:现在来自 Java 的引用有特别标记的类型(我们称之为“平台类型”,因为它们来自底层平台),其中特别处理:

  • Kotlin 不对平台类型执行零安全性。即对于 Java 值,您将获得 Java 的语义:NPE 现在可能来自 Java 的值