Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 为什么调用某些类函数时会包含()?_Kotlin - Fatal编程技术网

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()
mean
newrandom()
。而
Random.nextInt(3)
则意味着静态函数调用(来自java),Kotlin
object
method调用或
伴随对象
method调用