为什么Kotlin不遵循Java语法?

时间:2016-12-19 15:34:57

标签: kotlin

我正在学习Kotlin作为Android开发人员的过程!

出于好奇,为什么JetBrains的人不遵循Java风格的语法(他们可以在哪里),让开发人员更容易学习Kotlin

例如,在Kotlin中定义一个简单的函数:

dgv class

他们为什么不这样做:

fun simpleFunc(x: Int): Int {

// do stuff

}

我希望听到您对此的看法

3 个答案:

答案 0 :(得分:14)

Kotlin FAQ中所述,Kotlin的语法使得在编译器可以推断出类型声明时更加自然(Java不支持)。此外,根据我们对Kotlin的经验,我们没有看到Kotlin的类型声明语法给人们学习Kotlin带来困难的证据。

(请注意,您建议的语法也与Java不同,因此不清楚为什么您认为它更容易学习。)

答案 1 :(得分:3)

在我看来,Java就像一杯咖啡,而Kotlin意味着咖啡含有少量糖。在某些方面,就像你给出的例子,似乎Java和Kotlin在这一点上是相似的。但在某些情况下,Kotlin确实提高了效率并使编程更加愉快。

与Java相比,Kotlin更有效,实际上可以很好地使用Java。 检查官方enter image description here

给出的图片中的示例

在链中,当有 null 值时,您需要使用if函数来确定该值是否为 null ,但仅限于 null Kotlin需要一句话法。

另外,当您使用Gradle守护程序和Smart Compilation时,Kotlin显示出比Java更快的编译速度。

enter image description here

横轴表示十个连续增量版本,其中一个核心文件已更改。

你可以看到Gradle守护进程仍需要两到三次运行才能预热,但之后两种语言的性能非常相似。没有任何变化,每个热身版本需要4.6秒,而Kotlin平均需要4.5秒。当我们更改任何其他文件未使用的文件时,Java需要平均7.0秒才能进行热编译,而Kotlin则需要6.1。最后,当我们更改项目中许多其他文件导入的文件时,一旦Gradle守护程序预热,Java需要7.1秒才能进行增量构建,而Kotlin平均需要6.0秒。

答案 2 :(得分:2)

kotlin团队描述了here为什么类型声明(如你的例子中)在右边:

  

为什么右边有类型声明?

     

我们相信它使代码更具可读性。此外,它还具有一些很好的语法功能。例如,很容易留下类型注释。 Scala也证明了这不是问题。