嗨,我是 Scala 和一般编程的新手。我在 coursera 上学习了 Scala 课程,其中一项任务是创建将集合作为参数并返回另一个集合的函数,该集合是 2 个集合的并集/交集/差集。以下是交叉路口的解决方案:
def intersect(s: Set, t: Set): Set = elem => s(elem) && t(elem)
我不明白元素。Scala 如何知道它是集合的一个元素,以及为什么如果在 shell 中尝试它会返回错误:缺少参数类型。
联合和差异的解决方案(相同):
def union(s: Set, t: Set): Set = elem => s(elem) || t(elem)
def diff(s: Set, t: Set): Set = elem => s(elem) && !t(elem)
来自Scala 集:
可变集合的通用特征。
集合是不包含重复元素的集合。
实现说明:此 trait 提供了 Set 的大部分操作,与它的表示无关。它通常由集合的具体实现继承。
要实现一个具体的集合,您需要提供以下方法的实现:
def contains(key: A): Boolean
def iterator: Iterator[A]
def +(elem: A): This
def -(elem: A): This