개체를 반환하는 메서드를 래핑 할 수있는 제네릭 래퍼 함수를 만들려고합니다. this에 대한 답변과 매우 유사합니다. 다음을 시도 :스칼라 : 제네릭 형식을 반환하는 래퍼 함수
def wrapper_function[T](f: => T): T = {
println("Executing now");
val ret: T = f;
println("Execution finished");
ret
}
def multiply2(x: Int): Int = wrapper_function {
println("inside multiply2");
return x*2
}
그러나 나는 아무것도 래퍼 함수 내부에서 함수 호출 후 실행되는 것을 관찰하고있다. 특히, "Execution finished"는 인쇄되지 않습니다.
scala> val x = multiply2(4)
Executing now
inside multiply2
x: Int = 8
나는
2.11.8 내가 여기 뭔가 잘못하고 있습니까 스칼라 사용하고? 이것은 수수께끼이고 나는 약간 도움을 바랄 것입니다.
은'return'가 wrapper_function''로 전달 블록에서 반환되지 않고, 그것은'에서 반환 곱하기 2 '전체로. 'return x * 2'를'x * 2'로 바꿉니다. – Alec
'return'에 대한 위대한 블로그 글 : https://tpolecat.github.io/2014/05/09/return.html –