我在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