如何用Range填充可变参数(varargs)?求更优实现方案
用Range填充可变参数的简洁方式
嘿,你这步骤确实有点绕!其实Kotlin里不用折腾这么多——IntRange本身就支持直接转成IntArray,完全不需要先转List再转数组这一步。
你可以把代码简化成这样:
m.getColumns(*(count..count + 35).toIntArray())
为啥能这么简化?
当你用count..count+35创建的是IntRange类型,它自带了toIntArray()扩展方法,直接就能生成包含范围内所有整数的数组,省去了中间多余的集合转换步骤。
对比你原来的繁琐写法:
// 原代码 m.getColumns(*((count.. count + 35).toList().toIntArray()))
去掉toList()调用后,代码不仅更简洁,还减少了一次集合转换的额外开销。
要是你的getColumns方法接收的是vararg Int类型,这种写法完全适配,展开运算符*能正确把数组元素拆解成可变参数传入方法。
内容的提问来源于stack exchange,提问作者Yarh
相关产品推荐
相关产品推荐

