Почему () включается при вызове некоторых функций класса? - PullRequest
0 голосов
/ 24 января 2019

Вот мой пример:

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

Почему получается Random().nextInt(3), а не Random.nextInt(3)?

1 Ответ

0 голосов
/ 24 января 2019

Используя методы класса java.util.Random, вам нужно создать экземпляр этого класса. Экземпляр класса в Kotlin создается с использованием синтаксиса NameOfClass () . Поэтому, чтобы использовать nextInt(3) метод Random, сначала вы создаете экземпляр этого класса Random(), а затем вызываете nextInt(3) в созданном экземпляре. Итак, весь код выглядит так:

Random().nextInt(3)

EDIT:

На самом деле в Kotlin вы можете использовать два типа Random классов - java.util.Random и kotlin.random.Random. Если вы используете Random класс из java.util пакета, вам нужно создать экземпляр Random класса:

java.util.Random().nextInt()

Если вы используете Random класс из пакета kotlin.random, вам не нужно создавать экземпляр класса:

kotlin.random.Random.nextInt()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...