Closure - 수정중

Boomerang·2021년 8월 13일
0

IOS

목록 보기
4/5
post-thumbnail

Closure basic

func addOne (n1: Int) -> Int {
	return n1 + 1
}

위 처럼 Int가 들어오면, 그 Int에 1을 더한다

이게

클로저를 사용하면 { parentheses (괄호)를 맨 앞으로 옮기고, func와 fucntion name인 addOne을 지우면

{ (n1:Int) -> Int in retrun n1 + 1 

}

이렇게 표현이 가능하고 다음과 같다

let array = [6,2,3,4,5,6] 

이라는 배열이 있다고 생각해보자

원래 map이라는 함수를 사용하고 addOne함수를 부르면,

array.map(addOne)

바뀐것 :

array.map({ (n1: Int) -> Int  in return n1 + 1 })
array.map({ (n1) in return  n1 + 1 })
array.map({ (n1) in n1 + 1 })
array.map({$0 + 1})
array.map{$0 + 1}

마지막에 오는 func은 closure로 swift는 인식한다. 따라서 $0, $1, .. 가 parameter 매개변수로 사용됨

문자열로 바꾸기 꿀팁

let array = [6,5,3,2,1,1]

let newArray = array.map{"\($0)"}

Closure은 같은 class func 부를때 self써야함

ex) self.parseJason()

profile
Hello World

0개의 댓글