我是Kotlin的新手。我发现这是一种奇怪的做法。
对于arrayOf
/ mutableListOf
的情况,本能是使用构造函数(即new Array<T>(...args)
)尝试构造这些类型之一。甚至是静态工厂方法,例如LocalDateTime.of(...)
。
为什么没有使用new Array<T>()
,或者至少是一个范围函数,即Array.of
。这些方法难道也不会混淆全球范围吗?
arrayOf
和mutableListOf
不在“全球范围”(这甚至不存在)。他们分别在kotlin
和kotlin.collections
包中。
恰好kotlin.*
和kotlin.collections.*
是任何kotlin文件的默认导入,因此您不必自己进行导入。见Default Imports。
这与Java类似,默认情况下导入java.lang.*
,您无需指定它。
此外,你不能“构造”arrayOf和mutableListOf,因为它们不是类型;它们是方法 - 而且它们以小写字母开头的事实是表明 - 类型以大写字母开头的标准方式。
Kotlin允许在类之外的包级别的方法(虽然在为JVM编译时,它们将在一个类中),但这与Java中的import static
没有什么不同,您可以从没有类名的类中访问静态方法一个前缀。
new
关键字。