4Manuals

  • PDF Cloud HOME

在任一中指定案例对象的类型 Download

    Scala中的Some()的多个参数列表实现了什么? 如何在Scala中将以下flatMap / map片段转换为全面理解? 在Scala中将用户输入字符与一个字符进行比较 Spark Streaming Dstream多次写入同一文件 平滑-选项的动态过滤列表 PureConfig:我无法在sbt插件中读取reference.conf Scala-如何修改通过引用传递给方法的输入数组? 如何获取每个条目所有行条目中scala-spark中数组类型列的平均值? Scala:从大纪元开始的星期几 TypeSafeConfig和PureConfig-从配置加载Map [String,Any]值

如果我有如下对象:

case object Foo

然后我尝试创建一个像这样的值

Either[Foo, B]

我收到一个编译错误,说找不到Foo。但是如果我这样做:

Either[Foo.type, B]

它编译。我的问题是这样做是否正确?

1 个答案:

答案 0 :(得分:2)

每当要在Scala中声明object的类型时,都必须像YourObject.type一样声明它。

原因很简单,因为YourObject已经是实例。因此,.type是您必须在 Scala 中声明对象类型( Singleton )的方式。

这里有个例子:

object YourObject

def doit(obj: YourObject.type) = {}

def doitEventually(obj: Option[YourObject.type]) = {}


doit(YourObject)
doitEventually(Some(YourObject))

我找不到相应的文档,所以也许有人可以帮忙解决这个问题。

规范在这里:singleton-types(如Mojo在评论中提到的那样)



Similar searches
    Python GDAL:加载TIF,对其进行修改并保存 如何重用df.groupby()的结果。在另一个数据框中填充NaN是什么意思? 如何使用滑动选项卡修改viewpager 使用plotstyle =“ ggplot”时,为什么在qqcomp函数中没有显示任何点? Drupal 8:视图未出现在我的自定义主题上