gpt4 book ai didi

scala - 在任一中指定 Case 对象的类型

转载 作者:行者123 更新时间:2023-12-03 23:49:39 25 4
gpt4 key购买 nike

如果我有一个对象如下:

case object Foo

我尝试创造这样的值(value)
Either[Foo, B]

我收到一个编译错误,说找不到 Foo。但如果我这样做:
Either[Foo.type, B]

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

最佳答案

每当您想声明 object 的类型时在 Scala 中,你必须像 YourObject.type 一样声明它.

原因很简单,如YourObject已经是 实例 .所以.type是您必须在 中声明对象类型(单例)的方式斯卡拉 .

这里有一个例子:

object YourObject

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

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


doit(YourObject)
doitEventually(Some(YourObject))

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

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

关于scala - 在任一中指定 Case 对象的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59531680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com