본문 바로가기

클로져4

[Swift] Closure (클로져) 클로져 - 짧고 독립적인 코드 조각 클로져 종류 Named Closures - Global Function,Nested Function Unnamed Closures - Anonymous Function 보통 클로져라 하면 Unnamed Closures - Anonymous Function를 뜻함 함수와 클로져는 서로 자료형이 같아서 서로 호환이 됨 Global Scope에서는 단독으로 사용 불가 클로져도 First Class Citizen임 1. 변수, 상수에 저장가능 2. 파라미터로 전달할 수 있음 3. 함수와 메소드에서 리턴 가능 //Closures {(parameters) -> ReturnType in statements } // in 을 기준으로 앞은 closure head 뒤는 closure .. 2022. 8. 16.
[Swift] Escaping Closure Non Escaping Closure 함수 바디에 있는 클로져는 항상 함수 실행이 종료되기 전에 완료됨 함수의 실행흐름을 탈출하지 않음 파라미터는 함수가 실행되면 생성되었다가 햠수의 실행이 끝나면 자동으로 제거됨 Escaping Closure 시작 시점과 종료 시점이 특정되어 있지 않음 함수의 관계와 상관없이 클로저를 실행할 수 있음 클로져가 a 상수 캡처함 escaping 클로져를 사용하면 함수의 실행흐름을 벗어날 수 있음 클로져가 캡처한 값이 클로져 실행이 완료될때까지 삭제되지않음 그래서 클로져 실행흐름이 함수흐름을 벗어나더라도 메모리 오류없이 정상적으로 실행됨 2022. 8. 15.
[Swift] Capturing values 캡처는 값을 가져와서 쓴다는 개념 Global Function은 값을 캡처하지 않음. Neted Function은 값을 캡처함 자신을 포함한 함수 바디에 접근할 때 그 값을 캡처함 캡처방법에는 두가지가 있음 1. Objective - C 에서는 복사본을 캡처함 2. Swift에서는 원본을 그대로 가져와 참조를 캡처하는 방법임 클로져 내부에서 클로져 외부에 있는 값에 접근하면 값에 대한 참조를 획득하여 원래 값도 바뀜 2022. 8. 15.
[프로그래머스] 문자열 내림차순으로 배치하기 (Swfit) https://school.programmers.co.kr/learn/courses/30/lessons/12917# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr sorted 함수를 이용하여 내림차순 result 리턴 func solution(_ s:String) -> String { var result = "" for i in 0..)[i]) } return result } 다른 사람 풀이 1. $ 클로져에서 파라미터 이름을 대체할때 사용하는 달러사인을 이용할 수도 있음 2. 내림차순 배치로 $0 > $1 func solution(_ s:String) .. 2022. 8. 2.