gpt4 book ai didi

kotlin - 如何用范围填充可变参数?

转载 作者:行者123 更新时间:2023-12-02 12:08:15 25 4
gpt4 key购买 nike

什么是填充可变参数的正确方法?我的尝试看起来像一个错误
首先我构造范围
然后我将它转换为列表
然后到intarray
然后传播

m.getColumns(*((count.. count + 35).toList().toIntArray()))

其中 getColums 是一种接受列索引作为可变参数的方法

最佳答案

是的,从这个意义上说,范围与数组相去甚远,很难将它们作为 vararg 传入。参数。

您可以创建一个函数将它们转换为 IntArray实例快一步:

fun IntRange.toIntArray() = this.toList().toIntArray()

m.getColumns(*(count..count + 35).toIntArray())

此转换的稍微更好的优化版本:
fun IntRange.toIntArray(): IntArray {
val size = this.last - this.first + 1
var current = this.first
return IntArray(size) { current++ }
}

或者你可以定义一个重载函数,它接受 IntRange并进行转换以调用原始文件:
fun getColumns(range: IntRange) = getColumns(*range.toList().toIntArray())

同样,这也可以利用上面的转换方法来获得更好的性能:
fun getColumns(range: IntRange) = getColumns(*range.toIntArray())

关于kotlin - 如何用范围填充可变参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50472628/

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