이 Map[String, Any]
고려 :이해를위한 두 패턴 일치 사이의 행동에 차이점이있는 이유는 무엇입니까?
scala> for ((a, b) <- m1) println(a + b)
k1v1
k210
지금까지 너무 좋은 :
val m1 = Map(("k1" -> "v1"), ("k2" -> 10))
지금의이
for
쓰기 수 있습니다.
이제 두 번째 멤버의 유형을 지정할 수 있습니다 :
scala> for ((a, b: String) <- m1) println(a + b)
k1v1
scala> for ((a, b: Integer) <- m1) println(a + b)
k210
을 여기에, 나는 유형을 지정으로, 필터링은 큰 인 일어난다.
다음val l1 = Array("a", 2)
상황이 휴식 :
scala> for (v: String <- l1) println(v)
<console>:7: error: type mismatch;
found : (String) => Unit
required: (Any) => ?
내 두 질문은 :
- 왜 아무튼 '
는 이제 배열 [모든] 대신 사용하고 싶은 말은 두 번째 일치 필터도 마찬가지입니까?
- 더러운
isInstanceOf
을 사용하지 않고 두 번째 시나리오에서 이러한 필터링을 표현할 수있는 방법이 있습니까?
지금 당장 혼란 스럽기 때문에이 클럽에 가입하고 싶습니다! Scala 티켓이 있나요? 해결 방법은 훌륭하게 작동합니다. – ebruchez
@ebruchez 사실, 그렇습니다. 오래된 것, 그리고 D.R. 맥 이버. 나는 대답으로 그것을 링크 할 것이다. –
-1 인수 형 –