好的我終於看明白了
.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
}