2013-08-12 2 views
8

특정 사용 사례에 대해 변경 가능한 링크 된 목록을 사용해야합니다. 그러나 나는 "참조 앞에 접두사가 있어야합니다" 경고를 피하고 싶습니다.스칼라 변경 가능한 컬렉션 및 "참조 앞에 접두사가있는 경고가 있어야합니다."

case MutableLinkedList() => // do Something 

유일한 방법은 내가 :

가 빈 LinkedList의 패턴 일치를 제외하고 대부분의 경우에 작동
import scala.collection.mutable.{LinkedList => MutableLinkedList} 

, 이것은 여전히 ​​경고를 생성합니다 가져 오기를 앨리어싱

해결책이 될 것 같다 이 경고를 삭제할 수 있습니다. 빈 목록에서 정규화 된 사례 확인을하는 것 같습니다 :

case scala.collection.mutable.LinkedList() => // do Something 

첫 번째 경우가 경고를받지 않는 이유는 무엇입니까?

답변

15

그냥 mutable을 패키지 가져

mutable.LinkedList(1, 2, 3) 

또는 더 간결 변형을 선호하는 경우 :

import collection.{mutable => m} 
m.LinkedList(1, 2, 3) 

패턴 매칭에서도 작동합니다.

+3

설명 https://blog.jetbrains.com/scala/2012/05/26/mutableimmutable-collections-prefix-convention-support/ – user7610

2

2.10.2 셸에서 시도했지만 경고가 표시되지 않았습니다.

하나 "앨리어싱"의 식으로 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 = [email protected] 

scala> res0 match { case LL(1,2, _*) => "yey"; case _ => "bad" } 
res3: String = yey 

참조?

import collection.mutable 

및 변경 가능한 컬렉션을 사용합니다 : 이제 MutableLinkedList동반자 객체에 LL 포인트

+0

IntelliJ Community Edition에서 경고가 발생했습니다. 귀하의 제안은 훌륭하게 작동합니다. 감사. – ArtisanV