scala中依赖于路径的类型

时间:2015-12-02 16:13:35

标签: scala

我有以下内容:

class Graph {
  case class Node(val a: Int)
  def createNodes = Node(5) :: Node(7) :: Nil
}

def test(g: Graph): List[g.Node] = g.createNodes

然后我这样做:

def test2(g: Graph) = {
  val nodes = test(g)
}

我期望编译器跟踪nodes类型List[g.Node],但它似乎无法做到并将其类型分配给List[Graph#Node]。如果我尝试输入归类,它仍无效:val nodes: List[g.Node] = test(g)

我觉得我在scala中遗漏了与路径相关的类型背后的重要内容。如何让test(g)返回List[g.Node]以及为什么scala需要路径相关类型转换为A#B,如果我们几乎总是需要a.B

1 个答案:

答案 0 :(得分:1)

唉唉。它似乎是IntellJ Idea的一个错误。它将其突出显示为错误,但编译器正确解析它。不需要类型归属。