我是scala的新手,我有一个非常简单的问题:
我定义了这样一个类:
case class Image (imageId: Long, userId: Option[Long])
但是如果我想创建一个只有imageId
的类的实例:
var newImage = new Image(1)
虽然我使用Option[Long]
:
not enough arguments for constructor
Unspecified value parameter userId.
我做错了什么?谢谢;)
答案 0 :(得分:6)
重申错误消息,你没有给它足够的参数。 Option
不是可选的,因为您必须为其提供Some
或None
的值。如果您不想提供值并想要使用默认值,您可以在构造函数中给出一个值,如下所示:
case class Image(imageId, Long, userId: Option[Long] = None)
然后您可以执行此操作并使用默认值None
。
scala> var newImage = new Image(1)
newImage: Image = Image(1,None)
当然,当你有一个值时,你仍然可以提供一个值。
scala> var newImage = new Image(1, Some(42))
newImage: Image = Image(1,Some(42))