하핫 앙녕 상남자 Philip입니당 데헷 - syntax optimization 스위프트 문법 최적화 closure
본문 바로가기

ios Development/Swift

syntax optimization 스위프트 문법 최적화 closure

1. parameter 형식과 return 형을 생략한다

2. parameter 이름을 생략하고 in 키워드도 지운 후 shorthand argument name으로 대체한다 ($0, $1, $2 ...)

3. closure 에 포함된 코드가 단일 return문이라면 return 키워드를 생략한다 (implicit return)

4. closure 가 마지막 parameter라면 trailing closure로 작성한다.

5. argument label이 남아있다면 삭제한다

6. 괄호 사이에 parameter 가 더이상 없다면 괄호도 없애버리자


//


import Foundation


let list = ["Apple", "Banana", "Cactus", "DeerMeat"]


// where 파라미터로 인라인 클로저를 전달 문법 최적화를 적용하지 않은 전체 문법으로 작성.

let a = list.contains(where: { (name: String) -> Bool in

        return name.hasPrefix("A")                        -----------> True

})


-------------------------------------------------------------------------------------


"최적화 하는 과정"


 1. parameter 형식과 return 형을 생략한다

let a = list.contains(where: { (name) in

        return name.hasPrefix("A") 

})



2. parameter 이름을 생략하고 in 키워드도 지운 후shorthand argument name으로 대체한다 ($0, $1, $2 ...)

let a = list.contains(where: {

        return $0.hasPrefix("A") 

})


3. closure 에 포함된 코드가 단일 return문이라면 return 키워드를 생략한다 (implicit return)

let a = list.contains(where: {

        $0.hasPrefix("A") 

})



4. closure 가 마지막 parameter라면 trailing closure로 작성한다.

let a = list.contains(where: ) {

        $0.hasPrefix("A") 

}


5. argument label이 남아있다면 삭제한다

let a = list.contains({

        $0.hasPrefix("A") 

}


6. 괄호 사이에 parameter 가 더이상 없다면 괄호도 없애버리자

let a = list.contains {

        $0.hasPrefix("A") 

}


아싸 최적화 과정 끝


-------------------------------------------------------------------------------------


// 이제 contains(where:)를 호출, ->  문법 최적화를 적용.

let b =  list.contains

        $0.hasPrefix("A")                                       -----------> True

}


print(a && b)                                                      -----------> True


//

'ios Development > Swift' 카테고리의 다른 글

tuple decomposition  (0) 2020.01.08
unnamed tuple, named tuple  (0) 2020.01.08
while 반복문의 두가지  (0) 2020.01.04
for in loop의 다양한 활용  (0) 2020.01.04
Type Alias  (0) 2020.01.02