我是Kotlin的新手。我觉得这是一种奇怪的做法。
对于arrayOf
/ mutableListOf
,本能是尝试使用构造函数new Array<T>(...args)
尝试 construct 这些类型之一。甚至是静态工厂方法,例如LocalDateTime.of(...)
。
为什么不使用new Array<T>()
,或者至少不使用范围函数,即Array.of
。这些方法也不会使全局范围混乱吗?
答案 0 :(得分:2)
arrayOf
和mutableListOf
不在“全局范围”内(甚至根本不存在)。它们分别位于kotlin
和kotlin.collections
软件包中。
碰巧,kotlin.*
和kotlin.collections.*
是任何kotlin文件的默认导入,因此您不必自己进行该导入。参见Default Imports。
这类似于Java,其中默认导入java.lang.*
,而无需指定它。
此外,您不能“构造” arrayOf和mutableListOf,因为它们不是类型。它们是方法-它们以小写字母开头是事实,这是表明类型的标准方式-
Kotlin允许类级别以外的程序包级别的方法(尽管为JVM编译时,它们将位于类内部),但这与Java中的import static
并没有太大区别,您可以使用该方法访问静态方法来自没有类名作为前缀的类。
答案 1 :(得分:0)
new
关键字。