我必须为特定用例使用可变链表。但是,我想避免“引用必须加前缀”警告。
别名导入似乎是一个解决方案:
import scala.collection.mutable.{LinkedList => MutableLinkedList}
它适用于大多数情况,除了模式匹配空LinkedList,这仍然会产生警告:
case MutableLinkedList() => // do Something
我可以删除此警告的唯一方法是在空列表中执行完全限定的案例检查:
case scala.collection.mutable.LinkedList() => // do Something
为什么第一种情况没有消除警告?
答案 0 :(得分:18)
只需导入mutable
包:
import collection.mutable
并将其与任何可变集合一起使用:
mutable.LinkedList(1, 2, 3)
或者如果您更喜欢更简洁的变体:
import collection.{mutable => m}
m.LinkedList(1, 2, 3)
它也适用于模式匹配。
答案 1 :(得分:2)
我在2.10.2 shell中尝试过,没有看到任何警告。
mutable.LinkedList
提取器“别名”的一种方法是:
scala> MutableLinkedList(1,2,3,4,5)
res0: scala.collection.mutable.LinkedList[Int] = LinkedList(1, 2, 3, 4, 5)
scala> val LL = MutableLinkedList
LL: scala.collection.mutable.LinkedList.type = scala.collection.mutable.LinkedList$@5798795f
scala> res0 match { case LL(1,2, _*) => "yey"; case _ => "bad" }
res3: String = yey
请参阅?现在LL指向MutableLinkedList
随播广告