首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在kotlin中将函数的返回类型设置为mutableListOf

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

Stack Overflow用户
提问于 2021-07-04 07:18:34
回答 1查看 275关注 0票数 1

我创建了一个函数,它返回一个整数的所有因子。但问题是,返回类型是Unit而不是mutableListOf,这会导致错误。我的代码:

代码语言:javascript
复制
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))
}

我试着做:

代码语言:javascript
复制
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的初学者。请帮我解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-04 07:28:47

您似乎混淆了MutableList类型和函数mutableListOf

因为类型名称是MutableList<Int>,所以您应该这样做:

代码语言:javascript
复制
fun get_factors(num: Int) : MutableList<Int> {
    ...
}

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

代码语言:javascript
复制
fun get_factors(num: Int) : List<Int> {
    ...
}

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

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68242536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档