일부 기능에 대한 문자열 맵을 만드는 동안 예기치 않은 동작이 발생했습니다. 지도 요소로 부분 함수를 만들면 잘 동작합니다. val에 할당 할 때 대신 val을 호출합니다. 검사를 호출하려고하면 오류가 발생합니다. 예상 되나요? 나는 바보 같은 짓을하고 있니? 호출을 보려면 check()
을 주석 처리하십시오. 나는 스칼라 당신이 메소드를 호출 빈 괄호를 생략 할 수 있습니다, 편의를 위해 스칼라 2.7.7스칼라 부분 함수가 부분 함수가 아닌 것은 언제입니까?
def PartialFunctionProblem() = {
def dream()() = {
println("~Dream~");
new Exception().printStackTrace()
}
val map = scala.collection.mutable.HashMap[String,()=>Unit]()
map("dream") = dream() // partial function
map("dream")() // invokes as expected
val check = dream() // unexpected invocation
check() // error: check of type Unit does not take parameters
}
도움 주셔서 감사합니다. 꿈() 호출을 꿈()으로 바꿨을 때 나는 예상대로 행동했다. PartialFunctions에 대해 더 자세히 읽어보고 용어를 오용하지 않도록하겠습니다. –