scala set.contains的实现
发布时间:2020-12-16 18:05:12 所属栏目:安全 来源:网络整理
导读:type Set = Int = Boolean/*** Indicates whether a set contains a given element.*/def contains(s: Set,elem: Int): Boolean = s(elem) 为什么这包含功能? 我不明白. ()运算符如何返回true / false关于set中此元素的存在? 解决方法 逐个采用这种方式,第
type Set = Int => Boolean /** * Indicates whether a set contains a given element. */ def contains(s: Set,elem: Int): Boolean = s(elem) 为什么这包含功能? 我不明白. 解决方法
逐个采用这种方式,第一行中的类型别名意味着我们可以重写第二行,如下所示:
def contains(s: Int => Boolean,elem: Int): Boolean = s(elem) 但是A => B只是 def contains(s: Function1[Int,Boolean],elem: Int): Boolean = s(elem) s(elem)也是语法糖 – 任何时候你以这种方式“将值”应用于某个值,Scala将它变为s.apply(elem): def contains(s: Function1[Int,elem: Int): Boolean = s.apply(elem) 如果你看一下the 所以就是这样 – 我们只是将该集合表示为indicator function,然后将其隐藏在三层语法糖之下. 更新以解决注释:将一个集合表示为其指标函数,可以比通常的基于列表的表示更自然地模拟无限集(以及许多其他集).例如,假设我想要一组所有奇数.使用此处的表示,这很容易: val odds: Set[Int] = (_ % 2 != 0) 例如,尝试使用HashSet做同样的事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |