Android 类型列表的分解声明初始值设定项<;字符串>;必须有一个';组件6()';功能

Android 类型列表的分解声明初始值设定项<;字符串>;必须有一个';组件6()';功能,android,kotlin,Android,Kotlin,考虑将字符串列表转换为某个对象的方法: /** * Creates an Item from the provided list of strings */ private fun createFromStrings(strings: List<String>): Item { val (str1, str2, str3, str4, str5) = strings // some string manipulation return Item(some

考虑将字符串列表转换为某个对象的方法:

/**
 * Creates an Item from the provided list of strings
 */
private fun createFromStrings(strings: List<String>): Item {
    val (str1, str2, str3, str4, str5) = strings

    // some string manipulation
    return Item(someString)
}
/**
*从提供的字符串列表中创建项
*/
private fun createFromStrings(字符串:列表):项{
val(str1、str2、str3、str4、str5)=字符串
//一些字符串操作
返回项(someString)
}
将第6个变量添加到destructuring声明中会产生以下错误:

List类型的Destructuring声明初始值设定项必须具有 “component6()”函数

我可以由此推断,
列表
最多可以分解为5个现成的变量(可能是出于方便)


是否有相关文件?Collections.kt中是否有一些提示使这一点变得显而易见?还是仅仅是一个。。看看什么有效,接受它,然后继续你的生活?

正如@gpto正确地说,
List
没有现成的
component6()
方法,因此默认情况下最多可以分解5个元素。但是,如果您确实需要/想要第六个(或第七个,或第n个)组件,您可以编写自己的扩展:

operator fun <T> List<T>.component6(): T = get(5)

fun main() {
    val aList = listOf("one", "two", "three", "four", "five", "six")
    val (_, _, _, _, _, s6) = aList // no compilation error
    println(s6) // prints "six"
}
operator fun List.component6():T=get(5)
主要内容(){
val aList=列表(一、二、三、四、五、六)
val(,,,,,,,s6)=aList//无编译错误
println(s6)//打印“六”
}

您可以在标准库中找到定义。正如您所看到的,没有
组件6
。这就是我要找的!非常感谢。