我有以下内容:
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
?
答案 0 :(得分:1)
唉唉。它似乎是IntellJ Idea的一个错误。它将其突出显示为错误,但编译器正确解析它。不需要类型归属。