有没有一种方法可以更好地对此进行优化?

时间:2020-10-24 14:03:11

标签: kotlin

是否有更优化/更有效的方法来做到这一点?尝试了一些事情,这似乎是正确的,但最好知道是否有更好的方法来做到这一点。这是给我的不和谐机器人的命令,命令为“ 8ball”,您向机器人询问一个问题,他会随机回答。

            val num = Random.nextInt(1, 9)
            var text = ""
            when (num) {
                1 -> text = "Yes"
                2 -> text = "No"
                3 -> text = "Maybe yes"
                4 -> text = "Maybe no"
                5 -> text = "I don't know"
                6 -> text = "Ask csskrouble"
                7 -> text = "Ask someone else"
                8 -> text = "Rather yes"
                9 -> text = "Rather no"
            }

2 个答案:

答案 0 :(得分:2)

您可以创建一个Set,并要求一个随机值:

setOf(
    "Yes",
    "No",
    "Maybe yes",
    "Maybe no",
    "I don't know",
    "Ask csskrouble",
    "Ask someone else",
    "Rather yes",
    "Rather no",
).random()

答案 1 :(得分:0)

您总是可以这样做:

    val text = when (Random.nextInt(1, 10)) {
        1 -> "Yes"
        2 -> "No"
        3 -> "Maybe yes"
        4 -> "Maybe no"
        5 -> "I don't know"
        6 -> "Ask csskrouble"
        7 -> "Ask someone else"
        8 -> "Rather yes"
        else -> "Rather no"
    }

顺便说一句,在Random.nextInt(from, to)中,from是包含性的,但是to是排除性的,这意味着使用9永远不会得到Random.nextInt(1, 9)的结果< / p>

是的,FreshD是正确的,您也可以这样做:

val text = listOf("Yes", "No", "etc").random()