为什么在调用某些类函数时包含()?

时间:2019-01-23 21:08:38

标签: kotlin

这是我的示例:

fun randomDay() : String {
    val days = arrayOf("Monday", "Tuesday", "Wednesday")
    return days[Random().nextInt(3)]
}

为什么是Random().nextInt(3)而不是Random.nextInt(3)

1 个答案:

答案 0 :(得分:2)

使用java.util.Random类的方法,您需要创建该类的实例。 Kotlin中的类的实例是使用 NameOfClass()语法创建的。因此,要使用nextInt(3)的{​​{1}}方法,首先要创建该类Random的实例,然后在创建的实例上调用Random()。所以整个代码看起来像这样:

nextInt(3)

编辑:

实际上,在Kotlin中,您可以使用两种类型的Random().nextInt(3) 类-Randomjava.util.Random。如果您使用kotlin.random.Random包中的Random类,则需要创建java.util类的实例:

Random

如果您使用java.util.Random().nextInt() 包中的Random类,则无需创建该类的实例:

kotlin.random