【发布时间】:2016-06-10 04:58:27
【问题描述】:
空数组上的简单reduce会抛出:
线程“main”java.lang.UnsupportedOperationException 中的异常:无法减少空的可迭代对象。
链接时同样的异常:
val a = intArrayOf()
val b = a.reduce({ memo, next -> memo + next }) // -> throws an exception
val a1 = intArrayOf(1, 2, 3)
val b1 = a.filter({ a -> a < 0 }).reduce({ a, b -> a + b }) // -> throws an exception
是reduce的预期操作还是一个bug?
有什么解决方法吗?
【问题讨论】:
-
仅供参考:如果您只是使用
reduce进行求和,那么您可以在数字列表中使用内置的.sum(),如果您要对一些特殊的东西求和,那么您可以编写一个扩展功能也可以提供帮助。