ケースクラスでは、この冗長な命名を行う傾向があります。
abstract class MyTree
case class MyTreeNode (...)
case class MyTreeLeaf (...)
MyTree内にノードとリーフを定義することはできませんか? ここでのベストプラクティスは何ですか?
ケースクラスでは、この冗長な命名を行う傾向があります。
abstract class MyTree
case class MyTreeNode (...)
case class MyTreeLeaf (...)
MyTree内にノードとリーフを定義することはできませんか? ここでのベストプラクティスは何ですか?
クラス、トレイト、オブジェクトの名前はパッケージ スコープであるため、パッケージを使用して他のノードやリーフとのエイリアシングに対する保険を提供し、それらを単純Node
に andと呼びLeaf
、他のスコープ コンストラクト (つまりオブジェクト) の外側に残しますか?
ネストされたクラスは Scala ではパスに依存するため、ケース クラスを抽象スーパークラス内に配置することはお勧めしません。どちらかといえば、それらをコンパニオン オブジェクト内に配置できます。
abstract class MyTree
object MyTree {
case class Node (...) extends MyTree
case class Leaf (...) extends MyTree
}
(注:私はこれをテストしていません...)