title | date | author | tags | keywords | categories | reward | reward_title | reward_wechat | reward_alipay | source_url | translator | translator_url |
---|---|---|---|---|---|---|---|---|---|---|---|---|
[译]Kotlin 1.0 Beta 2 is Out! |
2015-11-16 13:01:00 -0800 |
Andrey Breslav |
官方动态 |
false |
Have a nice Kotlin! |
我们的第一次更新 测试版 在这儿!我们正在稳定,所以它主要是错误修复和标准库的更改。
我们现在对类型参数强制执行单实例继承约束:相同的T
不能同时具有List< Int>
和List&lt ; String>
作为其上限。对于类,这一直被禁止,现在对类型参数也是一样的。
智能演员不可能的情况下,诊断有所改善:
{% raw %}
{% endraw %}class C {
var x: String? = ""
fun foo(): String {
if (x != null) return x // ERROR: smart cast to String is impossible,
// because 'x' is a member variable
}
}
{% raw %}
{% endraw %}此外,编译器现在足够聪明,可以在特定时点值始终为空时提醒我们:
{% raw %}
{% endraw %} var x: Foo? = ...
if (x != null) return
x?.bar() // WARNING: bar() will never run, because x is always null here
{% raw %}
{% endraw %}我们清理标准库的 API。这个时间关系范围最明显的变化。我们打算使用常见的用例,例如“if(x in 1..10)
”或“for(i in 1..10)
”保持不变,但在引擎盖下进行了一些重命名和层次重构:
- 双重和浮动进度被丢弃
- 字节和短进度已被弃用,字节和短路的..运算符现在返回 IntRange
- 范围重命名为 ClosedRange ,其 end 属性重命名为 endInclusive
- Progression 不利于具体的进阶实现:IntProgression,LongProngession,CharProgression
- 开始和结束属性被重命名为第一个和最后一个
然后,字符串的实用程序扩展被广义化以在可能的情况下与CharSequence
一起使用。
现在,filterIsInstance
扩展名需要明确规定其类型参数:
{% raw %}
{% endraw %}foo(list.filterIsInstance()) // error: what is the type the checks are done for?!
foo(list.filterIsInstance<Bar>()) // OK: we are checking for Bar
{% raw %}
{% endraw %}注意:为了减小运行时库的大小(这对 Android 应用程序尤其重要),我们从标准库中删除了 kotlin.dom 和 kotlin.browser 包。他们现在可以作为一个单独的图书馆, kotlinx.dom 。如果您在项目中使用任何这些软件包,请添加新库作为依赖关系,并更新代码中的 import 语句(更改kotlin.dom
和kotlin.browser </代码>到
kotlinx.dom和
kotlinx.browser`)。否则,库的 API 没有改变。
其他变化:
- 添加
MutableLists 和 Arrays 的就地倒置和排序 naturalOrder 和 reverseOrder 比较器 mapNotNull,mapIndexedNotNull,filterIndexed String.toByte()
- MutableLists 和 Arrays 的就地倒置和排序
- naturalOrder 和 reverseOrder 比较器
- mapNotNull,mapIndexedNotNull,filterIndexed
- String.toByte()
- 已弃用(运行代码清理来迁移代码)
功能。发电机 toLinkedList
- 功能。发电机
- toLinkedList
- 掉下来
加入,合并 代表 l y FileTreeWalk.filter,File.recurse,BufferedReader.lines 和 lineIterator 断言,检查和要求与非懒惰的消息参数
- 加入,合并
- 代表 l y
- FileTreeWalk.filter,File.recurse,BufferedReader.lines 和 lineIterator
- 断言,检查和要求与非懒惰的消息参数
Kotlin 项目的新文档生成工具 Dokka 终于达成了全面的发布。 Dokka 支持混合语言项目和理解 KDoc 评论 在 Kotlin 代码和 JavaDoc 中的 Java 代码注释。 Dokka 具有 Gradle,Maven 和 Ant 的插件,因此您可以轻松地将其与项目的构建系统集成。下载 Dokka 并找到更多的信息 Dokka 项目网站 。
- 完成现在适用于 Java 静态成员和对象成员。只需按 Ctrl + Space 第二次: