'스칼라 프로그래밍, Second Edition의'페이지 (410)에 당신은 클래스 시뮬레이션 다음과 같은 방법을을 찾을 수 있습니다 :Scala에서 패턴 매칭을 사용하는 것이 합당한 간단한 경우가 있습니까?</p> <pre><code>private def next() { (agenda: @unchecked) match { case item :: rest => agenda = rest curtime = item.time item.action() } } </code></pre> <p>Odersky 패턴 그냥 그런 것이 아니라 일치하는이 구현 이유가 궁금 :에서
private def next() {
val item = agenda.head
agenda = agenda.tail
curtime = item.time
item.action()
}
패턴 일치가 그렇게 중요하지 않으므로 효율적입니까? 아니면 완벽한 예가 아니 었습니까?
패턴이 – gerferra
@gerferra 일치하지 않는 경우 MatchException가 발생합니다 버전과 일치하는 패턴 : 패턴 매칭없이, 또한
head
및tail
없이 여기에 대한 대안은 무엇인가처럼 될 수 있습니다. 그러나 어떤 경우에도 패턴 일치 버전은 간단한 수정이 있습니다. 나는 대답을 업데이트 할 것이다. –다른 버전에는 간단한 수정이 있습니다 :'if (! agenda.isEmpty)'를 감싸거나'agenda.headOption.foreach {item => agenda = agenda.tail; curtime = item.time; item.action()}' –