라벨이 closure인 게시물 표시

[swift] 클로져 개념 잡고 가기

이미지
[swift] 클로져(closures)_v2 함수라고 알고 있던 클로져를 공부하면서 기록합니다. 어느 순간 이해가 안되는 코드들이 클로져로 이루어져있다는 것을 알게된다음 정리와 적용과정이 필요하다는 것을 알고 정리해 놓습니다. 클로저란? 클로저 는 코드에 전달되어 사용할 수있는 독립적인 기능 블록입니다. Swift의 클로저는 C 및 Objective-C의 블록 및 다른 프로그래밍 언어의 람다와 유사합니다. 라는 정의가 공식문서에 적혀있습니다. 하지만 이 개념은 이해가 가지 않았고, 개인적으로는 이름이 없는 함수이고 축약을 위한 다른 규칙들이 있다라고 이해하고 있습니다. 클로저의 문법 함수의 생김새와 사용방법 let name = "hyunho" func printName() { print(name) } printName() // hyunho 클로져의 생김새 let name = "hyunho" let printName = { print(name) } printName() // hyunho 함수같이 생겨서 구조를 뜯어보았습니다. // 함수 func 함수이름(파라미터) -> 리턴타입 { (코드 블럭) } // 클로저 { (파라미터) -> 리턴타입 in (코드 블럭) } 클로져 축약과정 아래의 예시를 들어 함수를 사용하는 방법과 클로져의 사용을 정리해 보겠습니다. 기본설정 func squared(i: Int) -> Int{ i * i } squared(i: 5) // 25 let array = [1,2,3,4,5] squared 함수를 만들어 놓고, 5를 입력하면 25를 반환합니다. 리스트를 만들어서 하나씩 입력 해보겠습니다. 함수와 클로저 사용 // 함수를 매개변수로 전달 let arrayFunctionUsed = array.map(squared) print(arrayFunctionUsed) // [1