请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

不明白為什麼.count {it==true}可以簡寫成.count{it}

不明白为什么.count {it = = true}可以简写成.count{it},
因为这样传入的predicate的最后一行代码不就等价于return it
这样不会直接回传入参吗 似乎没有做逻辑判断?
但运行却是能实现判断的 实在搞不懂
这样我要如何理解别人的代码如果他只写.方法名{it}的话
我原本是理解为 return it ,现在需要改理解为 return it = = true吗?

正在回答

1回答

it 本身就是 Boolean 类型,所以返回 it 和 返回 it == true 本身就是等价的。
0 回复 有任何疑惑可以回复我~
  • 提问者 蚊子叮死我了 #1
    好的我終於看明白了
    .count{it},的全寫是.count{it - >it},
    於是在if (predicate(element))中的
    predicate(element)會回傳it本身,也就是直接把element不做處理直接回傳
    也就是Boolean,所以會變成if(element){count=count+1},
    總算是看明白了
    
    public inline fun <T> Iterable<T>.count(predicate: (T) -> Boolean): Int {
        if (this is Collection && isEmpty()) return 0
        var count = 0
        for (element in this) if (predicate(element)) checkCountOverflow(++count)
        return count
    }
    回复 有任何疑惑可以回复我~ 2022-12-11 08:08:25
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信