接线员说:“什么?”\&引用;你在这个scala代码中做什么?

接线员说:“什么?”\&引用;你在这个scala代码中做什么?,scala,Scala,我只是在scalacheck文档中发现了这一点,而google在试图查找“:\”操作符所做的事情时并没有提供太多帮助: abstract sealed class Tree[T] { def merge(t: Tree[T]) = Internal(List(this, t)) def size: Int = this match { case Leaf(_) => 1 case Internal(children) => (children :\ 0) (

我只是在scalacheck文档中发现了这一点,而google在试图查找“:\”操作符所做的事情时并没有提供太多帮助:

abstract sealed class Tree[T] {
  def merge(t: Tree[T]) = Internal(List(this, t))

  def size: Int = this match {
    case Leaf(_) => 1
    case Internal(children) => (children :\ 0) (_.size + _)
  }
}

case class Internal[T](children: Seq[Tree[T]]) extends Tree[T]

case class Leaf[T](elem: T) extends Tree[T]
除了在朦胧的scaladoc中拖网捕鱼外,还有人知道如何寻找这些时髦的符号吗


谢谢

这是
foldRight
的另一种语法

这是一种民俗

(children :\ 0) (_.size + _)
相当于

children.foldRight(0)(_.size + _)
children.foldRight(0)((a,b) => a.size + b)
也相当于

children.foldRight(0)(_.size + _)
children.foldRight(0)((a,b) => a.size + b)
如果检查库代码中的Seq[T],则“:\”方法定义为:

def :\[B](z: B)(op: (A, B) => B): B = foldRight(z)(op)

:\
是的替代语法


要搜索时髦的符号,您可以使用或。

不是两分钟前的第一个答案,而是最完整的答案。任何关于如何让谷歌、stackoverflow搜索、scaladoc搜索等来调出记录这些运营商的页面的想法。谢谢谷歌很难做到这一点。我建议在Scala插件或Scala IDE中使用一个像样的IDE,比如IntelliJ IDEA。按Ctrl-B或⌘B(对于IntelliJ IDEA)或F3(对于Scala IDE)在方法处跳转到其定义。在学习新库或框架时,此功能非常有用。HTH。你可以用它来搜索像Scala那样的奇怪的操作符。另一个以这些符号为导向的搜索引擎是symbolhound.com。谢谢你分享了一个搜索函数的好链接,这是一个很大的帮助。