case class
Google で aと aの違いを検索しましたclass
。クラスでパターン マッチングを行う場合は、case クラスを使用するようにと誰もが言っています。それ以外の場合はクラスを使用し、equals やハッシュ コードのオーバーライドなどの追加特典についても言及しています。しかし、クラスではなく case クラスを使用する理由はこれだけでしょうか?
Scala のこの機能には、何か非常に重要な理由があるはずです。その説明は何ですか、または Scala ケース クラスについてさらに学ぶためのリソースはありますか?
ベストアンサー1
ケース クラスは、コンストラクター引数に排他的に依存する、単純で不変のデータ保持オブジェクトと見なすことができます。
この機能的な概念により、
- コンパクトな初期化構文を使用する(
Node(1, Leaf(2), None))
) - パターンマッチングを使用して分解する
- 等価比較が暗黙的に定義されている
継承と組み合わせてケースクラスを使用すると、代数データ型。
オブジェクトが内部で状態のある計算を実行したり、他の種類の複雑な動作を示す場合は、通常のクラスである必要があります。