繁体   English   中英

Scala 所说的可疑类型阴影是什么意思?

[英]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]中的AEmptySet[A]中的A不同。

如果您希望这些是不同的类型,请使用不同的字母。

如果它应该是相同的类型,请从remove删除[A]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM