我在scala中有一个名为A的特征,我正在从它创建一个名为A1的case对象。就像这样:Scalacheck - 价值图不是Object A1的成员
trait A
case object A1 extends A
现在,我想创建一个Scalacheck Gen
它,所以我创建一个对象GenA
,像这样:
object GenA {
def a: Gen[A] = for {
value <- A1
} yield value
}
但是当我尝试编译它,我得到以下错误:
value map is not a member of object A1
[error] value <- A1
[error] ^
[error] one error found
[error] (test:compileIncremental) Compilation failed
任何人都可以帮我解决这个错误吗?
在你的代码中,你把'A1',就好像它已经发生器(即你在'<-'的右侧使用它,但事实并非如此。改为尝试'val a:Gen [A] = Gen.const(A1)'。 – Jubobs
@Jubobs我认为你应该发布这个答案。 :-) – stefanobaghino
作为附加信息:scala编译器会将for-comprehension转换为.map()和.flatMap()链。这就是为什么错误说'map不是(...)'的成员' – EmilioMg