【问题标题】:Why is the () included when calling some class functions?为什么调用某些类函数时要包含()?
【发布时间】:2019-06-17 12:59:21
【问题描述】:

这是我的例子:

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

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

【问题讨论】:

  • Kotlin 中没有 new 关键字。所以() 表示函数调用或构造函数调用。在您的情况下,Random() 在 Java 中的意思是 new Random()。虽然Random.nextInt(3) 表示静态函数调用(来自java),但Kotlin object 方法调用或companion object 方法调用

标签: kotlin random


【解决方案1】:

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

Random().nextInt(3)

编辑:

实际上,在 Kotlin 中,您可以使用两种类型的 Random 类 - java.util.Randomkotlin.random.Random。如果你使用 java.util 包中的 Random 类,你需要创建一个 Random 类的实例:

java.util.Random().nextInt()

如果您使用 kotlin.random 包中的 Random 类,则无需创建该类的实例:

kotlin.random.Random.nextInt()

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 2021-10-15
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多