Scala 匿名混入?

标签 scala traits mixins

调试时我必须检查scala.collection.GenSetLike文件。我在界面中遇到了这一点代码:

trait GenSetLike[A, +Repr] 
extends GenIterableLike[A, Repr]
  with (A => Boolean)
  with Equals
  with Parallelizable[A, parallel.ParSet[A]] {
  ...
}

这个(A => Boolean) 组合意味着什么?我尝试使用各种关键字进行搜索,但找不到满意的内容。
此语法表示一个接受 A 并返回 bool 值的函数,但我看不到特征 mixin 上下文中的含义...

我的第一个猜测是这与构造函数应用等内容有关,但这只是一种直觉。

请教我!

最佳答案

Scala 中的

Set 实现了覆盖 applyFunction1[A, Boolean] (A => Boolean) 接口(interface)与contains相同,因此Scala中的集合可以用作函数。

> val s = Set(1,2,3) 
s: Set[Int] = Set(1, 2, 3)

> s(2) 
res1: Boolean = true

> s.apply(3) 
res2: Boolean = true

> s(23) 
res3: Boolean = false

顺便说一句,这就是 Set 不变的原因。

关于Scala 匿名混入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51177162/

相关文章:

generics - 指定泛型参数属于一小组类型

将 Object 和 Class 组合在一起的 JavaScript mixin 会产生 TypeError

serialization - 为什么需要使用 Scala RemoteActors 设置类加载器?

scala - 多项目中的 SBT 测试依赖关系 : Make the Test-Code Available to Dependent Projects

generics - 在 Rust 中,我需要什么特征来比较泛型和整数

c++ - C++ 中的特征是什么,尤其是在 boost 中

scala - Scala Play Controller 中的 Finagle 客户端

scala - 在 scala 中对 tuples2 列表进行分组的更好、更有效的方法

sass - 将多个 mixin 合二为一包含在 sass 中

Groovy Mixin混合类的使用方法