![](/img/trans.png)
[英]In scala pattern matching, what is suspicious shadowing by a variable pattern?
[英]What does Scala mean by Suspicious Type Shadowing?
我正在实现一个 scala Set,我从这段代码中得到了这个错误
Suspicious shadowing by a Type Parameter: A
def remove[A](elemToRemove: A): MySet[A]
^
出于某种原因,该语言讨厌这个通用的 A 我正在传递它,这是为什么呢? “可疑的影翼”是什么意思?
https://scastie.scala-lang.org/NwcMObgnSxGjXA2clmaEyA ,虽然 scastie 遇到不同的错误,但如果从 remove[A [A]
中remove[A]
它将通过并执行
type mismatch;
found : exercises.part2afp.MySet[A(in class NonEmptySet)]
required: exercises.part2afp.MySet[A(in method remove)]
这是上下文:
case class EmptySet[A]() extends MySet[A] {
override def remove[A](elemToRemove: A): MySet[A] = this
问题是remove[A]
中的A
与EmptySet[A]
中的A
不同。
如果您希望这些是不同的类型,请使用不同的字母。
如果它应该是相同的类型,请从remove
删除[A]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.