Scala - 删除模式定义中的类型注释
Scala - Remove type annotation in pattern definition
class MyClass
val list: List[Any] = ...
list match {
case List(t: MyClass) =>
case _ =>
}
第一个案例有什么问题?在 IDEA 中,我一直看到一个黄色指示器,告诉我 "Remove type annotation from pattern definition"。
没有错,假设您确实想要匹配 class MyClass
的一个元素的列表。如果你有一个 List[MyClass]
,这个警告将很有用,在这种情况下,如果列表元素的类型发生变化,检查将是多余的并且很容易被遗忘;可能 IDEA 检查是针对这些情况的,但无法将它们与您的情况区分开来。
class MyClass
val list: List[Any] = ...
list match {
case List(t: MyClass) =>
case _ =>
}
第一个案例有什么问题?在 IDEA 中,我一直看到一个黄色指示器,告诉我 "Remove type annotation from pattern definition"。
没有错,假设您确实想要匹配 class MyClass
的一个元素的列表。如果你有一个 List[MyClass]
,这个警告将很有用,在这种情况下,如果列表元素的类型发生变化,检查将是多余的并且很容易被遗忘;可能 IDEA 检查是针对这些情况的,但无法将它们与您的情况区分开来。