2017-04-25 1 views
1

I이 작동 스칼라에 다음 코드 : I 함수에서 자리 표시자를 포함하는 경우자리 표시 자

var queryMap = Map("name" -> "tim") 
age_list.foreach { age => queryMap += ("age" -> age.toString) } 

, 그것은 나누기 :

var queryMap = Map("name" -> "tim") 
age_list.foreach { queryMap += ("age" -> _.toString) } 

다음과 같은 오류를 던져 질 것입니다 :

value += is not a member of scala.collection.immutable.Map[String,String] 

queryMap은 변경 가능한지도 대신 불변의지도가됩니다. 구문 구조에 문제가 있습니까?

답변

4

_ 나는이 오류를 재현 할 수없는, 내가 다른 하나를 얻을 :

밑줄이 foreach에 구속되지 않음을 의미합니다
error: missing parameter type for expanded function ((x$1: <error>) => "age".$minus$greater(x$1.toString)) 

하지만 += 이후에. 밑줄은 괄호 안에 묶여 있습니다 (있는 경우). 그러므로 당신은 그들을 제거 할 수 있으며 그것은 작동합니다.

var queryMap = Map("name" -> "tim") 
age_list.foreach { queryMap += "age" -> _.toString } 
+0

브릴리언트. 나는 괄호에 태그가 붙어 있다는 것을 깨닫지 못했다. –