Kotlin是什么类型的语言? 纯OOP或功能

我正在学习Kotlin 。 有了Java背景我知道,Java是纯粹的面向对象的语言。 即使是主要功能,一切都必须在课堂内部。

这就是为什么我想知道Kotlin是一个真正的面向对象的语言? 因为可以用Kotlin编写函数程序。

 package functions fun sayHello(name: String): String { val personName = name return "hello $personName" } fun main(args: Array<String>) { println(sayHello("Netra")) } 

实际上,大多数语言分析人员根本不把Java当成纯粹的面向对象语言。 所有需要在一个类中的代码都不是一个好的测试,更好的测试是语言中的所有对象。 在Java中,很多语言元素,特别是方法和函数(功能很久没有被使用,但最近通过lambdas添加)并不能作为对象。

尽管Java本身也在逐渐纠正这些缺陷,但Kotlin确实纠正了许多Java的缺陷。 但通常可以说,Kotlin可以被认为比Java更“OO”,主要是作为一个能够纠正过去错误的新设计的好处。

能够编写函数,就像现在可能在Java中使用Lambdas一样,不是“反面向对象”,真正的测试是如果函数本身可以成为第一类对象。 通过添加函数Java并没有变成OO,事实上Java随着时间的推移逐渐变得更加OO。 研究“是Java OO吗?

能够支持函数式编程不会使语言成为“非-oo”。 考虑(或研究)scala。

函数式编程可能比OO早甚至更早,但是最近变得越来越流行,这反映了更多的FP功能在使用新的语言,而Kotlin也提供了更多的FP支持。 没有任何语言是“纯粹的”FP,甚至是“印刷”语句都有副作用。

Kotlin提供了对这两种成语的支持,可能比Java更多的面向对象,但是比更专用的FP语言被认为是更少的FP。 随着时间的推移可能会增加更多的FP功能

—–另外一个参考对于一个关于OO的Java来说,我建议Russel Winder博士作为开发Java软件的合作者之一(其他凭证),达到了3个版本。 有一个参考, 请看这个视频 ,并在1:40的幻灯片中加上声明

Java是90年代的命令式语言,并不是真正的面向对象的。

作为一名公认的Java专家,在该视频和Russel的其他演示中都进一步解释了这个观点。 这个视图也被许多其他的Java专家所表达,我可以添加引用,但是这会让这个帖子太长,以至于不能为每个例子添加更多的细节。