카테고리 없음

iOS 5주차 (10.08)

k0223 2024. 10. 8. 20:25

Swift의 함수는 1급 객체입니다. 1급 객체(first class object) 또는 1급 시민(first class citizen)

  1. 변수에 저장할 수 있습니다.
  2. 매개변수로 전달할 수 있습니다.
  3. 리턴값으로 사용할 수 있습니다.

위의 조건을 총족하는 객체를 1급 객체라고 합니다.

 

Swift에서 사용되는 1급 객체의 예시를 정리한 표입니다.

함수 변수처럼 저장되고 전달될 수 있음 func greet() { print("Hello") }
클로저 변수처럼 저장되는 코드 블록 { (name: String) -> Void in print("Hello, \(name)") }
클래스 객체 지향 프로그래밍의 기본 단위 class Person { var name: String }
구조체 값 타입의 데이터 구조 struct Point { var x: Int, var y: Int }
프로토콜 특정 기능을 요구하는 청사진 protocol Drawable { func draw() }

 

함수의 일급 객체 ex)

출처: 스마일 한의 iOS 기본 프로그래밍

클로저: 특정작업(함수)과 그 작업이 일어난 곳(환경 또는상태)을 모두 기억하고 있는 도구입니다.

  • 익명함수
  • C, C++, Objective-C의 block
  • Java의 Lambda function
  • C# 의 Delegates
  • 클로저 표현식은 독립적인 코드 블록

출처: 스마일 한의 iOS 기본 프로그래밍

클로저을 사용한 onilne swift의 캡처 장면입니다.