作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了kotlin文档并尝试了BooleanArray.count(predicate: (Boolean) -> Boolean)
,但是它仍然返回array
的大小,而不是true
的数目:
val checks = arrayOf(true, false, true, true, true)
val trueCount = checks.count { true }
我的代码有什么问题?
最佳答案
使用count { it }
而不是count { true }
count
的参数不是要在数组中查找的值;这是一个谓词:一个带有一个参数并返回true
或false
的函数。该谓词将为数组中的每个项目调用一次,该谓词返回的值(true
或false
)确定是否对该项进行计数。因此,结果就是谓词对true
求值的数组中的项目数。
在这种情况下,编写{ true }
是{ value -> true }
的简写,并且是一个常量函数。无论true
是什么,它将始终返回value
。因此,“计算{ true }
返回true
的项目数”与“计算项目数”完全相同。
相反,您需要计算的值为true
的项目数。您应该使用的谓词是{ value -> value }
,这是一个接受单个参数并返回该参数值的函数。由于,当您不给它命名时,单个lambda参数被隐式命名为it
,因此{ value -> value }
的简写就是{ it }
。
关于java - 如何在Kotlin中获取 boolean 数组中的真实计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63755271/
我是一名优秀的程序员,十分优秀!