我正在實作一個 scala Set,我從這段代碼中得到了這個錯誤
Suspicious shadowing by a Type Parameter: A
def remove[A](elemToRemove: A): MySet[A]
^
出于某種原因,該語言討厭這個通用的 A 我正在傳遞它,這是為什么呢?“可疑的影翼”是什么意思?
https://scastie.scala-lang.org/NwcMObgnSxGjXA2clmaEyA,雖然 scastie 遇到了不同的錯誤,如果你從中洗掉[A]它將remove[A]通過并執行
type mismatch;
found : exercises.part2afp.MySet[A(in class NonEmptySet)]
required: exercises.part2afp.MySet[A(in method remove)]
uj5u.com熱心網友回復:
這是背景關系:
case class EmptySet[A]() extends MySet[A] {
override def remove[A](elemToRemove: A): MySet[A] = this
問題是 in 與Ainremove[A]是不同的A型別EmptySet[A]。
如果您希望這些是不同的型別,請使用不同的字母。
如果它應該是相同的型別,請洗掉[A]from remove。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/474427.html
上一篇:如何在SparkScala中將以“abcd”開頭的列重命名為以“wxyz”開頭?
下一篇:Json4s不序列化Java類
