首页 > 解决方案 > 除了 Kotlin 中的最后一个之外,对列表中的元素求和的最干净的方法是什么?

问题描述

这个问题主要是出于好奇,因为我几乎没有用功能习语触及表面。我有一个Ints 列表,其中最后一个是校验和,所以为了验证它,我需要将所有其他的相加。到目前为止,我想出了这个:

val checksum = list.dropLast(1).sum()

有没有可能做得更好?

标签: kotlinfunctional-programming

解决方案


可能类似的东西也可能起作用;在选择元素与删除元素方面:

val checksum = list.takeWhile{ list.indexOf(it) < list.lastIndex }.sum()

或者更简单的公式:

val checksum = list.sum().minus(list.last())

什么更适合仅取决于以后是否仍需要将该列表用于其他用途。


推荐阅读