본문 바로가기
반응형

closure2

Objective-C 블록 문법 블록(block)은 Objective-C에서 쓸 수 있는 동적 함수 혹은 클로저(Closure)와 비슷한 기능이다. 필요할 때 동적으로 생성될 수 있고 이름 없이도 구현할 수 있는 등 다른 여러 언어들의 클로저 개념과 상당히 유사하다. 블록이 컴파일될 때는 실제로는 함수 포인터 형식으로 변경되는 것으로 유추된다. 실제 코드에 포인터를 의미하는 * 문자가 사용되지 않지만 nil 을 가질 수 있는 등 포인터로 대체되어 컴파일되는 것 같다. 문법 꺽쇠 즉 ^ 문자가 블록을 가리키는 핵심적인 오퍼레이터다. ^{ ... } 위가 블록 문법을 알려주는 가장 기본적인 문법이지만 실제로는 아래와 같은 식의 문법을 쓰게 되는 것 같다. returntype (^name)(parameters) = ^(parameters) .. 2023. 3. 11.
러스트의 함수와 클로저 함수는 반복되는 명령을 별도로 분리해서 쉽게 호출할 수 있게 해 주기 때문에 모든 프로그래밍 언어에서 아주 중요한 기능입니다. 러스트도 당연히 이 함수 기능이 제공되지요. 이 함수 기능을 살펴보고, 하는 김에 함수와 비슷한 클로저도 살펴보기로 했습니다. 함수(Functions) 이미 main 함수에서도 봐왔지만 함수는 fn이라는 명령으로 정의할 수 있습니다. fn hello() { println!("Hello?"); } fn main() { hello(); } 설명할 필요도 없을 만큼 간단한 예제이지만 간략히 설명하자면 "Hello?"라는 메시지를 출력하는 hello라는 이름의 함수를 만들고 이를 main 함수에서 호출하고 있는 예제입니다. 이제 저 "Hello?" 메시지를 찍고 싶다면 hello 함수만.. 2020. 8. 10.
728x90
반응형