如何在kotlin中将函数的返回类型设置为mutableListOf

我做了一个函数,它返回一个整数的所有因子。但问题是它给出了一个错误,即返回类型是Unit而不是mutableListOf. 我的代码:

fun get_factors(num: Int) {
    var factors = mutableListOf<Int>()
    for (x in 1..num) {
        if (x % num == 0) {
            factors.add(x)
        }
    }
    return factors
}

fun main() {
    print(get_factors(18))
}

我试着做:

fun get_factors(num: Int): mustableListOf {
    var factors = mutableListOf<Int>()
    for (x in 1..num) {
        if (x % num == 0) {
            factors.add(x)
        }
    }
    return factors
}

fun main() {
    print(get_factors(18))
}

但它说mutableListOf没有定义。我今天刚开始学习 Kotlin,所以我完全是 Kotlin 的初学者。这个你能帮我吗。

回答

您似乎混淆了类型 MutableList<Int>功能 mutableListOf

由于类型名称是MutableList<Int>,您应该执行以下操作:

fun get_factors(num: Int) : MutableList<Int> {
    ...
}

或者,如果调用者不需要修改列表,您也可以返回List<Int>

fun get_factors(num: Int) : List<Int> {
    ...
}

我明白为什么这会令人困惑——要创建一个类型的实例,您通常只需添加()到类型名称的末尾,因此如果mutableListOf()创建一个列表,您会认为这mutableListOf就是类型名称。然而,这实际上是调用了全局函数 called mutableListOf,该函数返回 的实例MutableList<T>

区分这些的一种方法是查看第一个字母。类型名称通常以大写字母开头,而函数名称以小写字母开头。


以上是如何在kotlin中将函数的返回类型设置为mutableListOf的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>