我最近看到了以下代码,并且试图理解语法。
我不明白的是object Widget extends ((Int, String, DateTime) => Widget )
一部分。有人可以解释语法以及这里发生了什么吗?
case class Widget(
id : Int,
name : String,
created : DateTime = now
)
object Widget extends ((
Int,
String,
DateTime
) => Widget) { ..... }
简单的答案是你的对象延伸的Function
类型,其作为输入的类型三重Int
,String
和DateTime
并返回Widget
。因此,您将需要覆盖该apply(Int, String, DateTime)
功能。完成此操作后,将创建一个名为的函数Widget
。实际上,这就是case class
幕后为您实施的工具。在这种情况下,我相信你的Widget
函数的对象的定义将优先于默认的case class
一个。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句