closure

권현석·2022년 12월 29일
0
func funtionName (parameterName: inputDataType)-> output {
	// implementing
    return something
}

closure

{(parameterName) in
  statement
}
  1. func, functionName 지우기

  2. '{'를 제일 앞으로 보내기

  3. '{'가 있던 자리에 in을 입력
    => 이후 call된 어떤 함수의 parameter 자리에 이 closure를 넣어준다.

  4. swift는 data type inference(데이터 타입 추론)기능이 있다. 그래서 input value에 따라 data type을 추론하게 하면 closure를 더 짧게 쓸 수 있다.

  5. return 키워드도 없앨 수 있다. 근거는 이 함수가 closure안에 있기 때문이고, closure를 한 함수의 input으로 할 때, 이 closure의 parameter가 그 return value를 꺼내주기 때문이다.

  6. swift에서 closure는 ananymous parameter name이란 기능을 갖고 있는데, 이는 '$'과 함께 사용되며 첫 parameter는 $0, 두번째 parameter는 $1로 표현 할 수 있다.

  7. swift에는 한 가지 규칙이 있는데 한 함수의 마지막 parameter가 closure라면(즉, 마지막 parameter가 '{}'로 되어있다면) 그 parameter name을 지우고 이를 소괄호 밖으로 빼낼 수 있다.

calculator(n1: 2, n2: 3) {$0 * $1}
  • in은 ananymous function의 body가 시작됨을 알려준다.
  • statement는 ananymous function이 performing할 것을 알려준다.
profile
wanna be an iOS developer

0개의 댓글