Kotlin 为什么调用某些类函数时会包含()?
以下是我的例子:Kotlin 为什么调用某些类函数时会包含()?,kotlin,Kotlin,以下是我的例子: fun randomDay() : String { val days = arrayOf("Monday", "Tuesday", "Wednesday") return days[Random().nextInt(3)] } 为什么是Random().nextInt(3)而不是Random.nextInt(3)?使用java.util.Random类的方法,您需要创建该类的实例。Kotlin中的类的实例是使用NameOfClass()语法创建的。因此,要使
fun randomDay() : String {
val days = arrayOf("Monday", "Tuesday", "Wednesday")
return days[Random().nextInt(3)]
}
为什么是
Random().nextInt(3)
而不是Random.nextInt(3)
?使用java.util.Random
类的方法,您需要创建该类的实例。Kotlin中的类的实例是使用NameOfClass()语法创建的。因此,要使用nextInt(3)
方法Random
首先创建该类的实例Random()
,然后对创建的实例调用nextInt(3)
。整个代码如下所示:
Random().nextInt(3)
编辑:
实际上,在Kotlin中,您可以使用两种类型的Random
类-java.util.Random
和Kotlin.Random.Random
。如果使用java.util
包中的Random
类,则需要创建Random
类的实例:
java.util.Random().nextInt()
如果使用kotlin.Random
包中的Random
类,则无需创建该类的实例:
kotlin.random.Random.nextInt()
Kotlin中没有
new
关键字。所以()
表示函数调用或构造函数调用。在您的例子中,Java中的Random()
meannewrandom()
。而Random.nextInt(3)
则意味着静态函数调用(来自java),Kotlinobject
method调用或伴随对象
method调用