클로저6 Swift : 기초문법 [클로저 및 고차함수(map, filter, reduce)] 본 게시글은 yagom님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다. 클로저 클로저에 대해서 간단하게 예제를 들어보면서 살펴보자. calculator이라는 함수가 있고, 값을 더하거나 빼거나 곱하는 코드를 작성해보자! func calculator(n1: Int, n2: Int) -> Int { return n1 + n2 } var makeCalculation = calculator(n1: 2, n2: 5) //7 만약 calculator 함수에 대한 입력을 순서대로 전달하려면 어떻게 해야 할까? func calculator(n1: Int, n2: Int) -> Int { return n1 + n2 } func add(n1: Int, n2: Int) -> Int { return n1 + n2 }.. SWIFT/Grammar 2022. 1. 19. Swift : 기초문법 [인스턴스 #4 클로저 사용 프로퍼티 기본값, 디이니셜라이저] 본 게시글은 yagom님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다. 먼저 보고 와주세요! Swift : 기초문법 [인스턴스 #1 이니셜라이저, 매개변수) Swift : 기초문법 [인스턴스 #2 기본 이니셜라이저, 멤버와이즈 이니셜라이저) Swift : 기초문법 [인스턴스 #3 초기화 위임, 실패 가능한 이니셜라이저] 클로저를 사용한 프로퍼티 기본값 설정 사용자 정의 연산을 통해 저장 프로퍼티의 기본값을 설정하려면 클로저나 함수를 사용해 프로퍼티 기본값을 제공할 수 있다. 인스턴스를 초기화할 때 함수나 클로저가 호출되며 연산 결괏값을 프로퍼티 기본값으로 제공하게 된다. 그렇기에 클로저나 함수의 retrun 타입은 반드시 프로퍼티 타입과 일치해야 한다. 만약 프로퍼티의 기본값을 설정하기 위해 클.. SWIFT/Grammar 2022. 1. 15. Swift : 기초문법 [#4 후행 클로저에 매개변수 사용 ] 매개변수를 받을 때, 클로저를 매개변수로 사용 함수에 전달하는 클로저는 자체 매개변수를 받을 수도 있습니다. 여태까지 우리는 ( ) -> Void 를 "매개변수가 없고, 아무것도 반환하지 않는다"라는 의미로 사용해왔지만, 클로저에서 허용되는 모든 매개변수 유형으로 ( ) 에 채울 수 있습니다. func travel(action: (String) -> Void) { print("나는 지금 집에 가고 있다..") action("서울") print("나는 도착했다!") } 이제 후행 클로저 구문을 사용하여 travel() 을 호출할 때 문자열을 승인하기 위해 클로저 코드가 필요합니다. travel { (place: String) in print("나는 지금 \(place)로 가고 있다.") } //나는 지금 .. SWIFT/Grammar 2021. 2. 25. Swift : 기초문법 [#3 후행 클로저 - Closure syntax] 후행 클로저 함수에 대한 마지막 매개 변수가 클로저인 경우 Swift는 후행클로저 구문이라는 특수 구문을 사용할 수 있습니다. 클로저를 매개변수로 전달하는 대신 { } 안의 함수 바로 뒤에 전달합니다. (후행 클로저 사용 시 가독성이 좋습니다) func travel(action: () -> Void) { print("나는 나갈 준비를 하고있다.") action() print("나는 도착했다!") } 마지막 매개변수가 클로저이기 때문에 다음과 같이 후행 클로저를 travel()구문을 사용하여 호출할 수 있습니다. travel() { print("나는 지금 차를 타고 이동중이다.") } 위 코드에는 실제로 다른 매개변수가 없기 때문에 ( ) 를 완전히 제거할 수 도 있습니다. travel { print("나.. SWIFT/Grammar 2021. 2. 24. Swift : 기초문법 [#2 클로저를 함수로 전달] 클로저를 함수로 전달 클로저는 String 과 Int 처럼 사용할 수 있으므로 이것을 함수에 전달할 수 있습니다. 이건 처음배우는 분들에겐 정말 복잡하고 어렵기 때문에 단계별로 진행하도록 하겠습니다. 먼저 기본 diriving() 클로저를 만들겠습니다. let driving = { print("나는 지금 차를 타고 이동중이다.") } 위 클로저를 함수에 전달하여 함수 내에서 실행 할 수 있도록 하려면 매개변수 유형을 () -> void 즉, 매개변수를 작성하지 않고 아무것도 반환하지 않아야 합니다. 따라서 아래와 같이 작성할 수 있습니다. 함수에 반환하는 곳을 잘 확인해주세요. func travel(action: () -> Void) { print("나는 나갈 준비를 하고있다.") action() pri.. SWIFT/Grammar 2021. 2. 24. Swift : 기초문법 [#1 클로저 기본 - Closure] 클로저는 조금 복잡하기 때문에 조금씩 단계 별로 알아보도록 하겠습니다. 기본 클로저 - Creating basic closures 클로저는 일정 기능을 하는 코드를 하나의 블록으로 모아놓은 것을 말합니다. 함수를 만들어 변수에 할당하고, 해당 변수를 사용하여 해당 함수를 호출하고, 해당 함수를 다른 함수에 매개 변수로 전달할 수도 있습니다. 이러한 방식으로 사용되는 함수를 클로저라고 하며 함수처럼 작동하지만 약간 다르게 작성됩니다. 메시지를 인쇄하는 간단한 예제로 시작해 보겠습니다. let driving = { print("나는 지금 운전을 하고 있다.") } 자 이렇게 이름없이 함수를 생성했고, driving 에 함수가 할당되었습니다. 이제 driving() 사용하여 호출 할 수 있습니다. 클로저는 무.. SWIFT/Grammar 2021. 2. 24. 이전 1 다음 한국어 (기본) English Русский 日本語 👉🏻 잠깐만요! 이 글도 한 번 보고 가세요 이전글 다음글 티스토리툴바 서근 개발노트구독하기