kotlin - Kotlin:为可变参数和集合定义函数
问题描述
举例来说,我想编写自己的sum函数,它可以采用整数或可变参数整数的集合,如下所示:
fun sum(ints: Collection<Int>): Int {
var result = 0
for (i in ints)
result += i
return result
}
fun sum(vararg ints: Int) = sum(ints.toSet())
是否有更好/惯用的方法来为两种参数类型定义函数?在许多情况下,我只对一个或两个元素使用这样的函数,因此每次在函数外部用listOf()包装它对我来说似乎很笨拙。
解决方案
我认为没有更好的方法可以做到这一点。您可以使用您的示例或此示例:
fun sum(ints: Collection<Int>) = sum(*ints.toIntArray())
fun sum(vararg ints: Int): Int {
var result = 0
for (i in ints)
result += i
return result
}
推荐阅读
- python - 对 Pandas 数据框的所有元素应用 if/then 条件
- arrays - 为什么使用 reqwest 下载的 PNG 图像的字节数与使用 Python 下载的字节数不同?
- javascript - .find() 函数在 .create() 之前运行,即使它在 JS 代码中位于 .create() 函数之下
- ssh - ssh 命令无限期挂起
- python - Python - 将多个 2D 数组连接成一个 3D 数组
- typescript - Typescript - 从对象的函数中访问类属性
- javascript - TypeScript:尝试访问枚举时没有带有“字符串”类型参数的索引签名
- python - Series.map 和 Series.apply 的区别
- java - HTTP 消息未正确加载(Android)
- cpu-architecture - 实现逻辑门的直觉