다음과 같은 스칼라 코드 예제가 가능합니까?스칼라 : 코드 블록을 클로저로 변환 할 수 있습니까?
{ println("done!") }.asInstanceOf[() => Any]
무엇이 가장 효과적일까요?
편집 : 내 목표는() => {...}보다 더 짧은 표현식을 얻는 것입니다. () => 부분을 제거하고 싶습니다.
편집 2 : 당신에게 약간의 사용 사례의 예를 제공합니다 :
implicit class Closure(func:() => Any) {
def asRunnable = new Runnable { override def run() = func() }
def asThread = new Thread(asRunnable)
def run = asThread.start()
}
(() => println("something")).run
니스,하지만 그건 내가 원했던 것이 아닙니다. 나는 명확하게하기 위해 나의 질문에 약간의 쪽지를 덧붙였다. –
코드 블록을 클로저로 변환하는 어색한 방법은 괜찮을 것입니다. 왜냐하면 이것이 의미하는 바를 아는 경우 결국 암시 적 변환으로 수행 할 수 있기 때문입니다. –
@GerhardHagerer 네, 이해합니다. 그러한 코드의 사용 예를 보여줄 수 있습니까? –