Scala~> (波浪号大于)运算符

时间:2012-04-10 09:11:40

标签: scala operators

我有以下scala类定义(在论文中找到),建模类别:

trait Category[~>[_, _]] {
    def compose[A, B, C]
     (f: B ~> C)
     (g: A ~> B)
     : A ~> C
    def id[A]: A ~> A
}

有人可以解释一下'〜>'表示在Category类型参数中,并在方法中返回类型? 或者引导我找到解释它的资源...... 我是Scala的新手(来自Java),请原谅我,如果这是scala用户应该知道的...... 提前谢谢

2 个答案:

答案 0 :(得分:30)

~>只是Category的type-parameter的占位符名称。与T中的class Option[T]一样。

此外,Scala语法允许您将B ~> C写为~>[B, C]的简写。

如果你重命名它可能会变得更清楚:

trait Category[Mapping[_, _]] {
  def compose[A, B, C](f: Mapping[B, C])(g: Mapping[A, B]): Mapping[A, C]
  def id[A]: Mapping[A, A]
}

答案 1 :(得分:1)

Akka streams中,它也用作边缘运算符。