Scalaのcase class
Scalaのクラスと違い、いくつかの特徴を有する便利なクラスの仕組み。
インスタンス化の際のnewキーワードを使わない
コンパニオンオブジェクトが自動で生成されるため
メンバー変数はデフォルトでvalで再代入不可になる
参照ではなく構造(値)で比較される
code:scala
case class Message(sender: String, recipient: String, body: String)
val message1 = Message("guillaume@quebec.ca", "jorge@catalonia.es", "Ça va ?")
println(message1.sender) // guillaume@quebec.ca が出力されます
message1.sender = "travis@washington.us" // この行はコンパイルされません
Q. なんで「case」classという名前なの?
A. match / case(Scalaのmatch式)で使うと便利なものだから説
https://stackoverflow.com/questions/39347241/why-case-class-is-named-case
本当?