스위프트 공식문서 정리
https://docs.swift.org/swift-book/LanguageGuide/Closures.html
closures are self-contained blocks of functionality that can be passed around and used in your code.
클로저는 상수 또는 변수 참조 가능 외부에 정의된 변수를 참조 할 수있음
func makeIncrementer(forIncrement amount:Int)->()->Int{
var runningTotal = 0
func incrementer()->Int{
runningTotal += amount
return runningTotal
}
return incrementer
}
makeIncrementer가 int를 받아 ()→Int인 함수를 리턴한다로 정의됨
중첩함수인 incrementer는 자신을 둘러싼 함수 makeIncrementer의 amount와 runningTotal값을 캡쳐한다.
하여 함수 내부에서 정의되지 않은 runningTotal, amount 두 변수를 사용할 수 있게된다.
3-1) 가장 기본적인 정렬 문법
let names = ["chris","Alex","Ewa","Barry","Daniella"]
func backward(_ s1:String, _ s2: String)->Bool{
return s1>s2
}
var reversedNames = names.sorted(by:backward)
3-2)클로저를 사용해보자
var reversedName = names.sorted(by: {s1:String, s2:String)->Bool in
return s1>s2
})
3-2) 타입 추론 클로저
reversedNames = names.sorted(by:{s1,s2 in return s1>s2})