2014-05-21 1 views

답변

2

F 인수 이름입니다; => T은 이름이 인 이라는 의미입니다.

  1. 이 메소드를 호출 할 때 인수 유형 T이있을 것이다 자동 () => T로 전환됩니다

    :이 방법을 구현할 때

    func1[String](0, x)(x + x) ===> func1[String](0, x)(() => x + x) 
    
  2. , 각 그것은 몇 가지 문법 설탕 기본적으로 해당 () => T에의 F을 사용하면 F()가됩니다. 따라서 T 유형의 값은 매번 다시 계산됩니다.

물론,이 두 가지 사례 중 하나에 유용하다 : F이 필요하지 않을 경우

  1. ;

  2. F에 의해 반환 된 값이 다른 호출간에 변경 될 수있는 경우.

+0

또한 람다 변수를 사용하지 않고 중괄호 블록을 함수 인수로 메서드에 추가 할 수 있습니다. 이것을 사용하여 'while'루프의 구문을 시뮬레이션 할 수 있습니다. 필자는 개인적으로 벤치마킹에 사용했다 :'benchmarkTime (100) {someExpensiveFunction()}'('100'은 벤치 마크를 실행하는 횟수) – KChaloux

관련 문제