안녕하세요.
minuco입니다.
진짜 마지막!
closure 가 간결해지는 순서를 알아볼 거예요
내장 closure인 sort를 예로 들겠습니다!
Closure를 간결하게
우선 arry를 하나 만들고 sort 함수를 호출하는 과정을 축약해 보겠습니다.
(sort함수는 기본적으로 오름차순으로 정렬된다.)
var names = ["abcd","bacd","cabd","dabc"]
// 형태: sort(by: (String, String) throws -> Bool)
//1. 기본 형태
names.sort(by: {(lhs: String, rhs: String) -> Bool in
// lhs(left hand side)왼쪽, rhs(right hand side)오른쪽.
return lhs > rhs
})
/* 결과 lhs > rhs
$0 과 $1을 비교해서 큰것부터 작은순 으로 정렬
[dabc, cabd, bacd, abcd]
*/
/* 결과 lhs < rhs
$0 과 $1을 비교해서 작은순부터 큰 순 으로 정렬
[abcd, bacd, cabd, dabc]
*/
//2. 축약 - type 지우기
names.sort(by: {(lhs, rhs) -> Bool in
return lhs > rhs
})
//3. 축약 - 반환 type 지우기
names.sort(by: { lhs, rhs in
return lhs > rhs
})
//4. 축약 - return 지우기
names.sort(by: { lhs, rhs in
lhs > rhs
})
//5. 축약 - 변수 지우기
names.sort(by: { $0 > $1 })
//6. 축약 - 다 지우기
names.sort(by: > ) // 오름차순
or
names.sort(by: < ) // 내림차순
이번글은 굉장히 짧네요..?
하하...
하 sort() 함수와 sorted() 함수는 항상 비교되는데,
둘의 차이점도 공부하시면 좋을 거 같습니다.
'iOS > Swift' 카테고리의 다른 글
[Swift Network] URLSession (0) | 2023.04.12 |
---|---|
[Swift Network] URLSession - 사전지식 (0) | 2023.04.12 |
[Swift] Closure - escaping (0) | 2023.03.23 |
[Swift] Closure - Capturing (0) | 2023.03.23 |
[Swift] Closure 기본 개념 (2) | 2023.03.20 |