为什么Scala中的Case类需要使用强制括号()。
case class TestCase() {}
为什么不能如下所示:
case class TestCase {}
ecbunoof1#
这是为了避免错误。如果您有一个没有参数的Case类,这意味着您创建的所有Case类将是相同的,因此在大多数情况下,您真正的意思是执行case object
case object
0yycz8jy2#
As case类是特殊的类,它已经定义了工厂方法。工厂方法之一是Apply Function(构造Case类的对象,不带新关键字)。由于此Apply方法功能,我们必须指定圆括号,这意味着Apply方法中没有要传递的参数,并且必须调用默认的Apply方法(没有任何参数)来构造该Case类的对象。
2条答案
按热度按时间ecbunoof1#
这是为了避免错误。如果您有一个没有参数的Case类,这意味着您创建的所有Case类将是相同的,因此在大多数情况下,您真正的意思是执行
case object
0yycz8jy2#
As case类是特殊的类,它已经定义了工厂方法。工厂方法之一是Apply Function(构造Case类的对象,不带新关键字)。由于此Apply方法功能,我们必须指定圆括号,这意味着Apply方法中没有要传递的参数,并且必须调用默认的Apply方法(没有任何参数)来构造该Case类的对象。