2014-07-08 3 views
1
let asdf = { 

     println("df") 

     for i in 1...10 { 

     } 
    } 

표현의 형식을 변환 할 수 없습니다 '() ->() -> ST0'를 입력하기 '() ->() -> ST0'상단 폐쇄의 문제점은 무엇폐쇄가 잘못 되었나요?

. for 루프를 제거하면 작동합니다.

답변

0

그 구문이 작동하지 않는 이유는 확실하지가 (나도 그것을해야한다고 생각했을 것이다)하지만, 작업을 수행하는 전체 구문

let asdf = {() ->() in 
      println("df") 

      for i in 1...10 { 
       println(i) 
      } 
     } 

asdf() 

의 단순화 된 경우입니다.

0

폐쇄가 예상되는 컨텍스트가 아니기 때문에이를 해석하지 않습니다. 클로저로 asdf을 선언함으로써

은, 지금은 폐쇄가 너무 축약 구문을 허용 기대 : Grimxn가 지적으로

let asdf :()->() = { 

    println("df") 

    for i in 1...10 { 
    } 
} 

다른 방법으로, 전체 구문을 사용할 수 있습니다.