val x = for(i <- 1 to 3) yield i
x match {
case 1 :: rest => ... // compile error
}
constructor cannot be instantiated to expected type; found : collection.immutable.::[B] required: scala.collection.immutable.IndexedSeq[Int]패턴 매치 시퀀스 보 완성의 관용적 인 방법은 무엇입니까?
이 MatchError when match receives an IndexedSeq but not a LinearSeq와 같은 문제입니다.
질문은 올바르게하는 법입니까? 어디서나 .toList
을 추가하는 것이 옳지 않은 것처럼 보입니다. 모든 Seq
을 처리하는 자체 추출기를 만들면 (다른 질문의 답에 설명 된대로) 모두가 그럴 경우 혼란을 겪을 수 있습니다 ...
질문에 대한 답은 무엇입니까? sequence comprehensions의 리턴 타입은 다음과 같다 : Seq
추출기가 표준 라이브러리의 일부분 인 이유는 무엇인가? 예를 들어
case Seq(a, b, rest @ _ *) =>
:
이 일반화 된 추출기는 2.10에서 사용할 수 있습니다. 'val a + : b = 0 ~ 10'은 'val a :: b = (0에서 10까지) .toList'가 2.9 에서처럼 작동합니다. –
흠, 매우 흥미 롭습니다! 목록 작성을 위해 두 개의 추출기를 사용하여 약간의 엉망이 생기는지 확실하지 않지만. 이 추출기가 다음을 대체 할 예정입니까 ::? 결국, 그것은 똑같은 일을 할 수 있고 더 일반적입니다. – letmaik
알아두면 좋은 @TravisBrown. List의 'Nil'과 같은 것이 있습니까? –