我对 Scala 很陌生,但我已经使用过案例类。我了解这里总结的常规课程和案例课程之间的主要区别是什么总结的常规课程和案例课程之间的主要区别是什么。
我什至不想摆脱案例类,但我想知道转换所需的代码是什么,例如:
class Tweet(val user: String, val text: String) {
override def toString: String =
"User: " + user + "\n" +
"Text: " + text + "]"
}
成一个完整的案例“兼容”类。我的意思是,我想编写一个案例类的相同“行为”,但不使用case
关键字。这是可能的还是编译器做了一些我无法通过代码得到的事情(不包括优化)?
再次说明我在问什么,当我需要一个案例类时,我总是会使用 case 关键字,但是在一生中,我想知道 Scala 编译器(一般意义上)为我做了什么,用代码术语。
编辑: 另一个疑问:编译器会以某种方式标记我的手工编码类与标准案例类,以便我可以观察到执行中的不同行为吗?