我正在学习Kotlin作为Android开发人员的过程!
出于好奇,为什么JetBrains的人不遵循Java风格的语法(他们可以在哪里),让开发人员更容易学习Kotlin ?
例如,在Kotlin中定义一个简单的函数:
dgv class
他们为什么不这样做:
fun simpleFunc(x: Int): Int {
// do stuff
}
我希望听到您对此的看法
答案 0 :(得分:14)
如Kotlin FAQ中所述,Kotlin的语法使得在编译器可以推断出类型声明时更加自然(Java不支持)。此外,根据我们对Kotlin的经验,我们没有看到Kotlin的类型声明语法给人们学习Kotlin带来困难的证据。
(请注意,您建议的语法也与Java不同,因此不清楚为什么您认为它更容易学习。)
答案 1 :(得分:3)
在我看来,Java就像一杯咖啡,而Kotlin意味着咖啡含有少量糖。在某些方面,就像你给出的例子,似乎Java和Kotlin在这一点上是相似的。但在某些情况下,Kotlin确实提高了效率并使编程更加愉快。
与Java相比,Kotlin更有效,实际上可以很好地使用Java。 检查官方
给出的图片中的示例在链中,当有 null 值时,您需要使用if函数来确定该值是否为 null ,但仅限于 null Kotlin需要一句话法。
另外,当您使用Gradle守护程序和Smart Compilation时,Kotlin显示出比Java更快的编译速度。
横轴表示十个连续增量版本,其中一个核心文件已更改。
你可以看到Gradle守护进程仍需要两到三次运行才能预热,但之后两种语言的性能非常相似。没有任何变化,每个热身版本需要4.6秒,而Kotlin平均需要4.5秒。当我们更改任何其他文件未使用的文件时,Java需要平均7.0秒才能进行热编译,而Kotlin则需要6.1。最后,当我们更改项目中许多其他文件导入的文件时,一旦Gradle守护程序预热,Java需要7.1秒才能进行增量构建,而Kotlin平均需要6.0秒。
答案 2 :(得分:2)
kotlin团队描述了here为什么类型声明(如你的例子中)在右边:
为什么右边有类型声明?
我们相信它使代码更具可读性。此外,它还具有一些很好的语法功能。例如,很容易留下类型注释。 Scala也证明了这不是问题。