gpt4 book ai didi

scala - 对象的值

转载 作者:行者123 更新时间:2023-12-04 06:31:26 26 4
gpt4 key购买 nike

简单的问题,我有这样的代码:

class Context[A] {
def t: A
}

object Context {
implicit object StandardContext extends Context[SomeObject] {
def t = SomeObject
}
}
SomeObjectobject保存我想在我的 Context 中访问的值和函数.不幸的是 A 的不同类型我想包括除了 java.lang.Object 之外没有共同的父类.
SomeObject定义如下:
final object SomeObject {
def func1 = ...
def func2 = ...
}

在一些不是我的代码中。但是 Scala 编译器提示 SomeObject is not a value当我尝试上面的东西时。据我所知,一个 object在 scala 中是一个单例类,所以它是一个类型,是的,但也是一个值,它自己类型的唯一值。

我想做的是这样的事情:
class Foo[A](bar: Int)(implicit context: Context[A]) {
def baz = context.t.baz
}

任何人都可以告诉我如何解决这个问题或有更好的解决方法吗?

最佳答案

implicit object StandardContext extends Context[SomeObject] {
def t = SomeObject

第一个 SomeObject 是一种类型,是 Context 的类型参数,但在第二行中,它被用作变量。

考虑到
 ... List [Int] {
def x = Int // fail

Int 是一个类型,而不是一个变量,所以 x不能退货 Int ,它只能返回 整数。

关于scala - 对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5370233/

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