Scala集合,接受按名称传递的参数

时间:2014-04-15 10:52:21

标签: scala collections pass-by-name

这样的收藏是否存在?

目前我编写的代码没有编译:

object pagerank {
    // TODO fixme
    val totalNodes: BigDecimal = 4

    class Node(in: => List[Node], out: => List[Node]) {
        def rank: BigDecimal = {
            in.foldLeft(BigDecimal(0))((sum, node) => sum + node.rank) + (1 / totalNodes / out.size)
        }
    }

    val d: Node = new Node(Nil, List(a, b, c))
    val b: Node = new Node(List(d), List(a, c))
    val c: Node = new Node(List(b, d), List(a))
    val a: Node = new Node(List(b, c, d), Nil)

  b.rank
}

Erros是:

  • 前向参考延伸到值d的定义
  • 前向引用扩展了对值c的定义
  • 前向参考扩展了对值b的定义
  • 前向引用扩展了对值a的定义

0 个答案:

没有答案