为什么Kotlin不遵循Java语法?

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

出于好奇,为什么JetBrains的人不遵循Java风格的语法(他们可能拥有哪些语法),并且让开发人员更容易学习Kotlin

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

fun simpleFunc(x: Int): Int { // do stuff } 

他们为什么没有这样做:

 fun Int simpleFunc(Int x) { // do stuff } 

我希望听到你的意见

正如在Kotlin FAQ中所提到的,当Kotlin的语法可以被编译器推断时(Java不被Java支持),它就省略了类型声明。 另外,根据我们对Kotlin的经验,我们没有看到Kotlin的类型声明语法给人们学习Kotlin带来困难的证据。

(请注意,您所建议的语法也与Java不同,所以目前还不清楚为什么您认为它会更容易学习。)

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

与Java相比,Kotlin更加有效,实际上可以很好地与Java一起工作。 检查官方给出的图片中的例子, 在这里输入图像描述

在链中,当存在值时,需要使用if函数来确定值是否为 ,但是Kotlin只需要一个句子方法。

另外,当您使用Gradle守护进程和智能编译时,Kotlin显示比Java更快的编译速度。

在这里输入图像描述

横轴表示十个连续的增量版本,一个核心文件已经改变。

您可以看到,Gradle守护进程仍然需要两三次运行才能进行预热,但之后两种语言的性能非常相似。 没有任何变化,Java每个温度构建需要4.6秒,而Kotlin平均为4.5秒。 当我们改变一个没有被任何其他文件使用的文件时,Java需要平均7.0秒来进行一个温和的构建,而Kotlin的时钟是6.1。 最后,当我们改变项目中许多其他文件导入的文件时,一旦Gradle守护进程预热,Java需要7.1秒才能完成增量构建,而Kotlin平均需要6.0秒。

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

为什么右边有类型声明?

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