gpt4 book ai didi

kotlin - 将列表添加到另一个列表的末尾

转载 作者:行者123 更新时间:2023-12-02 12:40:11 26 4
gpt4 key购买 nike

我正在编写一段代码,需要在其中添加一个列表到另一个列表。

fun a(x:Int):List<List<Int>>{
var a = 1.rangeTo(x);
var b: List<List<Int>> = emptyList();
for (i in a){
var num1 = if(i<=3) i else 4;
var list_a= 0.rangeTo(num1 - 1);
b.add(list_a);
}
return b
}
我的问题是 b.add(list_a)提供了 error(unresolved reference)
在此功能中,如果我输入 println(a(2))输出应为 [[0],[0,1]]请帮忙。

最佳答案

之所以要获取unresolved referenceb.add(),是因为已将b初始化为List而不是MutableList
请注意,在初始化后,您可以在Kotlin中将元素添加到MutableList中,但不能添加到List 中。因此,将b的初始化更改为var b: MutableList<List<Int>> = mutableListOf()

fun a(x: Int): List<List<Int>> {
var a = 1.rangeTo(x)
var b: MutableList<List<Int>> = mutableListOf()
for (i in a) {
var num1 = if (i <= 3) i else 4
var list_a = 0.rangeTo(num1 - 1).toList()
b.add(list_a)
}
return b
}
对其进行进一步的重构,可以在 1..x循环中使用 for作为范围的范围,并使用 (0 until num1)代替 0.rangeTo(num1 - 1)如下所示
fun a(x: Int): List<List<Int>> {
val listB: MutableList<List<Int>> = mutableListOf()
for (i in 1..x) {
val num1 = if (i <= 3) i else 4
val listA = (0 until num1).toList()
listB.add(listA)
}
return listB
}

关于kotlin - 将列表添加到另一个列表的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62483925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com