title | date | author | tags | keywords | categories | reward | reward_title | reward_wechat | reward_alipay | source_url | translator | translator_url |
---|---|---|---|---|---|---|---|---|---|---|---|---|
[译]Kotlin M1 Candidate |
2012-03-30 07:57:00 -0700 |
Andrey Breslav |
官方动态 |
false |
Have a nice Kotlin! |
IntelliJ IDEA 11.1 最近发布,我们很高兴地宣布 Kotlin IDE 插件的里程碑式候选版本。这篇文章概述了上个月发生了什么。
要安装在 IntelliJ IDEA 11.1(免费社区版本可用 这里 ),请按照说明进行操作 入门 指南。简而言之:
- 使用此插件库:http://www.jetbrains.com/kotlin/eap-plugin-repository/updatePlugins.xml
- 或从这里下载压缩插件。
您可以随时从我们的夜晚下载 Kotlin 的每夜建筑物 构建服务器 或自己建立 来源 。 现在我们简要介绍一下新的和值得注意的内容。请参阅 这个博文 对于以前实现的功能。
首先,我们做了很多 bug 修复,改进和其他重要的事情,很难演示。查看提交历史记录 github 和封闭的问题 YouTrack 。
随着扩展功能的强大,Kotlin 使现有的 Java API 更好。特别是,我们为 JDK 集合提供增强功能,以便您可以这样说:
{% raw %}
{% endraw %}fun main(args : Array<String>) {
val list = arrayList(1, 2, 3)
val odds = list.filter {it % 2 == 1}
println(odds.join(", "))
}
{% raw %}
{% endraw %}这里,filter()和 join()是扩展函数。 实现方面,扩展函数只是静态实用程序函数,如“好老旧”Java 的 Collecions *,但是使用“receiver.function()”调用语法,IDE 使它们更好:有**代码完成< / strong>可以帮助您浏览 API 并学习(就像扩展名是正常的类成员一样):
{% raw %}
{% endraw %}您可以导航到库函数的源:
{% raw %}
{% endraw %}并在那里查看doc 评论:
{% raw %}
{% endraw %}图书馆文档的 HTML 版本可用 这里 。
Kotlin 突出显示现在得到支持 github , 包含 要旨 。
Kotlin 现在支持注释。这是一个依赖于 JUnit 4 的小例子:
{% raw %}
{% endraw %}import org.junit.Test as test
import org.junit.Assert.*
class Tests {
test fun simple() {
assertEquals(42, getTheAnswer())
}
}
{% raw %}
{% endraw %}阅读更多 这里 。
现在可以使用多行字符串模板,例如:
{% raw %}
{% endraw %}println("""
First name: $first
Last name: $last
Age: $age
""")
{% raw %}
{% endraw %}简单的例子 枚举类 现在得到支持。例如:
{% raw %}
{% endraw %}enum class Color {
RED
GREEN
BLUE
}
{% raw %}
{% endraw %}函数可以在其他函数中声明:
{% raw %}
{% endraw %}fun count() : Int {
fun count(parent : Entity) : Int {
return 1 + parent.children.sum { count(it) }
}
return count(this.root)
}
{% raw %}
{% endraw %}Kotlin 现在认识到了 @Nullable 和 @NotNull 注释 )。如果 Java 代码说:
{% raw %}
{% endraw %}@NotNull String foo() {...}
{% raw %}
{% endraw %}Kotlin 将 trat foo()返回一个不可为空的 String。 短手操作( !! )将可空值转换为不可空的值:
{% raw %}
{% endraw %}val foo = getSomethingThatMayBeNull()
foo!!.bar() // throw NPE if foo is null, run bar() otherwise
{% raw %}
{% endraw %}点击 IDEA 窗口右边的 Kotlin 按钮,然后选择“Bytecode”选项卡。您将看到 Kotlin 为您的程序生成的字节码!
{% raw %}
{% endraw %}