gpt4 book ai didi

scala - 运算符 ":\"在此 Scala 代码中做了什么?

转载 作者:行者123 更新时间:2023-12-01 10:08:32 24 4
gpt4 key购买 nike

我刚刚在 scalacheck 文档中看到这个,谷歌在尝试查找“:\”运算符的作用方面并不是很有帮助:

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)

如果检查 Seq[T] 的库代码,':\' 方法定义为:

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

关于scala - 运算符 ":\"在此 Scala 代码中做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19891997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com