:왜 scalac이 String에 대해 method +에 대해 불평하고 있습니까? 다음 스칼라 코드를 감안할 때
error: too many arguments for method +: (other: String)java.lang.String
actualMessages += (contentType, payload)
특히, 페이로드는 IDEA에서 강조하고 명령 줄에, + =이 강조 : 나는 다음과 같은 오류 메시지가 무엇입니까 왜
def stream(callback: (String, Array[Byte]) => Unit) {
callback("application/json;charset=utf-8", Array(1))
callback("application/xml;charset=utf-8", Array(1))
}
@Test
def whenStreaming_thenShouldSeeSameMessages() {
var actualMessages = List.empty[(String, Array[Byte])]
sut.stream {
(contentType, payload) =>
actualMessages += (contentType, payload)
}
expect(List("application/json;charset=utf-8", "application/xml;charset=utf-8")) {
actualMessages
}
}
. 나는 그 오류 메시지를 정말로 이해하지 못한다.
아마 컴파일러가 추측하기가 어렵습니다. 나는 String이 List [Character]라고 생각한다. –
나는 당신의 질문을 이해하지 못하지만,'+'가'Any' 타입에 대한 일반적인 문자열 연결로 해석되는 방법에 대해 더 자세히 설명했습니다. –
@ François : 스칼라에서'String'은 뚜렷한 타입이고'List [Char] '의 동의어는 아닙니다. – missingfaktor