본 내용은 ‘스위프트 프로그래밍 3판’의 3부 – 함수형 프로그래밍과 스위프트, p266 13-18의 코드 부분의 질문인데요.
위와 같은 코드인데요.
제 생각엔 runNoescapeClosure()로 instance의 메소드를 실행하면 Void 값이 리턴되며, 안에 있는 functionWithNoescapeClousre라는 클로저가 있지만 실행이 안되기 때문에 내부 블록에 있는 x=200이 실행이 안돼서 x=10이 나와야할거 같다는 생각을 해봤는데, 그게 아닌거 같더라고요.
정확하게는 functionWithNoescapeClosure가 어떻게 실행되는지 모르겠습니다.
워낙 생략이 가능하고, 함축된 부분이 많다보니 어디서 놓친건지 잘 모르겠어서 질문드립니다.
PS. 글을 작성하고 고민을 해봤는데, sorted(by:) 메소드에서도 names.sorted{ $0 > $ 1 } 으로 했듯이, 저 위의 코드도 functionWithNoescapeClousure{ x = 100 } 에서 뒤에 블록 부분이 클로져로 넘어가서 실행이 된걸로 봐야하나요??
-
이 게시글은 rrkkee015에 의해 3 years, 10 months 전에 수정됐습니다.
-
이 게시글은 rrkkee015에 의해 3 years, 10 months 전에 수정됐습니다.