foldl을 사용하여 목록에서지도에 쌍을 추가하려고합니다. 나는 다음과 같은 오류가 발생합니다 :스칼라 : foldl을 사용하여 목록에서지도에 쌍을 추가 하시겠습니까?
"missing arguments for method /: in trait TraversableOnce; follow this method with `_' if you want to treat it as a partially applied function"
코드 :
val pairs = List(("a", 1), ("a", 2), ("c", 3), ("d", 4))
def lstToMap(lst:List[(String,Int)], map: Map[String, Int]) = {
(map /: lst) addToMap (_, _)
}
def addToMap(pair: (String, Int), map: Map[String, Int]): Map[String, Int] = {
map + (pair._1 -> pair._2)
}
에 어떤 문제가 있습니까?
'(Map.empty [String, Int]/: pairs) (_ + _)'에 대해 말하면 Map에 정의 된 덧셈 이항 연산자'+'를 의미합니까? 다음과 같은 것을 허용하는 것 : val m = Map.empty [String, Int]; 'm + ("a"-> 1)'맞습니까? ** BTW 왜 내가'm + ("a", 1)'을 할 수 없습니까? ** –
예. 예. 스칼라는 이것을 'm. + ("a", 1)'로 해석하기 때문에; 여분의 괄호 쌍이 필요합니다. – missingfaktor