我倾向于在案例类中使用这种冗余命名:
abstract class MyTree
case class MyTreeNode (...)
case class MyTreeLeaf (...)
不能在MyTree中定义 Node 和 Leaf吗?这里有哪些最佳实践?
我倾向于在案例类中使用这种冗余命名:
abstract class MyTree
case class MyTreeNode (...)
case class MyTreeLeaf (...)
不能在MyTree中定义 Node 和 Leaf吗?这里有哪些最佳实践?
由于类、特征和对象名称是包作用域的,为什么不使用包来防止与其他节点和叶发生别名并简单地调用它们Node
and Leaf
,同时将它们留在任何其他作用域构造(即对象)之外?
我不建议将案例类放在它们的抽象超类中,因为嵌套类在 Scala 中是路径依赖的。如果有的话,您可以将它们放在伴随对象中。
abstract class MyTree
object MyTree {
case class Node (...) extends MyTree
case class Leaf (...) extends MyTree
}
(注意:我还没有测试过这个......)