为什么Kotlin使用像arrayOf这样的全局函数

问题描述 投票:0回答:2

我是Kotlin的新手。我发现这是一种奇怪的做法。

对于arrayOf / mutableListOf的情况,本能是使用构造函数(即new Array<T>(...args))尝试构造这些类型之一。甚至是静态工厂方法,例如LocalDateTime.of(...)

为什么没有使用new Array<T>(),或者至少是一个范围函数,即Array.of。这些方法难道也不会混淆全球范围吗?

java kotlin
2个回答
2
投票

arrayOfmutableListOf不在“全球范围”(这甚至不存在)。他们分别在kotlinkotlin.collections包中。

恰好kotlin.*kotlin.collections.*是任何kotlin文件的默认导入,因此您不必自己进行导入。见Default Imports

这与Java类似,默认情况下导入java.lang.*,您无需指定它。

此外,你不能“构造”arrayOf和mutableListOf,因为它们不是类型;它们是方法 - 而且它们以小写字母开头的事实是表明 - 类型以大写字母开头的标准方式。

Kotlin允许在类之外的包级别的方法(虽然在为JVM编译时,它们将在一个类中),但这与Java中的import static没有什么不同,您可以从没有类名的类中访问静态方法一个前缀。


0
投票
  1. Kotlin不使用new关键字。
  2. 它清楚地表明Array是否可变。
  3. 有javascript和本机库将调用映射到其他实现。
© www.soinside.com 2019 - 2024. All rights reserved.