문자열에서 int로 스칼라로 맵을 필터링하려고하는데 이상한 문제가 있습니다.scala 익명 함수 질문
나는 REPL에 다음을 넣으면 ...
scala> myMap.filter(_._2 > 1)
res9: scala.collection.immutable.Map[java.lang.String,Int] = Map(b -> 2, c -> 3)
하지만 이것이 실패 ...
scala> val myMap = Map("a" -> 1, "b" -> 2, "c" -> 3)
myMap: scala.collection.immutable.Map[java.lang.String,Int] =
| Map(a -> 1, b -> 2, c -> 3)
그것은 확인 지금까지, 그리고이 작품
scala> myMap.filter((k:java.lang.String, v:Int) => v > 1)
<console>:9: error: type mismatch;
found : (java.lang.String, Int) => Boolean
required: ((java.lang.String, Int)) => Boolean
myMap.filter((k:java.lang.String, v:Int) => v > 1)
제 질문은 오류 메시지와 여분의 괄호 쌍으로 무엇이 진행되고 있습니까? 여분의 괄호 세트를 넣으려고하면 오류가 발생합니다. 합법적 인 매개 변수가 아닙니다.
'Function.tupled'의 경우 +1입니다. – agilesteel
동의. Function.tupled는 패턴 일치가 더 트릭처럼 보이지만 명시 적입니다. – andyczerwonka
이것이 바보 같은 질문 인 경우 죄송합니다. 대소 문자와 일치하는 패턴은 중괄호 {}로 작동하지만 괄호는 사용하지 않는 이유는 무엇입니까? –