我需要在Kotlin的一行上输入9个值:
fun readInts() = readLine()!!.split(' ').map { it.toInt() }
fun main(){
val (x, y, z, f, e, m, s, t, c) = readInts()
但是当我尝试执行此操作时,出现错误:
Error:(5, 30) Kotlin: Destructuring declaration initializer of type List<Int> must have a 'component6()' function
预先感谢您的帮助)
答案 0 :(得分:3)
Kotlin仅在- (CGFloat)sectionIndexWidthForSectionIndexTitles:(NSArray *)titles {
return 100;
}
上定义component1()
到component5()
,用于分解,因此限制了您的操作。
但是,由于有了Extension Functions,我们可以定义自己的:
List
(依此类推...)
然后这应该起作用:
operator fun <T> List<T>.component6(): T = this[5]
operator fun <T> List<T>.component7(): T = this[6]
operator fun <T> List<T>.component8(): T = this[7]
operator fun <T> List<T>.component9(): T = this[8]
请注意,如果您的组件为null,则此操作可能会失败。