Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- uiscrollview
- RxCocoa
- uitableview
- 클린 코드
- SWIFT
- Observable
- 리팩토링
- Human interface guide
- Xcode
- UICollectionView
- ribs
- collectionview
- combine
- map
- 애니메이션
- 리펙토링
- clean architecture
- tableView
- swift documentation
- 리펙터링
- MVVM
- Refactoring
- Clean Code
- ios
- UITextView
- HIG
- swiftUI
- 스위프트
- rxswift
- Protocol
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - SwiftUI] Combine Mathematical 연산자 (count, max, tryMax, min, tryMin) 본문
iOS Combine (SwiftUI)
[iOS - SwiftUI] Combine Mathematical 연산자 (count, max, tryMax, min, tryMin)
jake-kim 2022. 11. 10. 22:02목차) Combine - 목차 링크
Math 연산자
- .count()
- 의미 그대로 배열의 갯수를 반환
- max(by:)
- by에 해당하는 조건을 갖는 최댓값 반환
[(1, 2), (1, 3), (1, 4)].publisher
.max(by: { $0.1 < $1.1 })
.sink { print($0) }
// (1, 4)
- tryMax()
- throw를 던질 수 있는 max 연산자
struct MinusError: Error {}
[1,2,-1,3,4].publisher
.tryMax { first, second in
// first, second = (1, 2), (2, -1), (-1,3), ...
guard first != -1, second != -1 else { throw MinusError.init() }
return first < second
}
.sink(
receiveCompletion: { print("receiveCompletion: \($0)")},
receiveValue: { print("recieveValue: \($0)") }
)
// receiveCompletion: failure(ExMath.MinusError())
- min(by:)
- max(by:)에서 by의 조건이 반대이므로 주의
[1,2,3,4].publisher
.min(by: { $0 < $1 }) // max(by: { $0 > $1 })와 동일
.sink { print($0) }
// 1
- tryMin()
- 예외를 던질 수 있는 min
struct MinusError: Error {}
[1,2,-1,3,4].publisher
.tryMin { first, second in
// first, second = (1, 2), (2, -1), (-1,3), ...
guard first != -1, second != -1 else { throw MinusError.init() }
return first < second
}
.sink(
receiveCompletion: { print("receiveCompletion: \($0)")},
receiveValue: { print("recieveValue: \($0)") }
)
// receiveCompletion: failure(ExMath.MinusError())
'iOS Combine (SwiftUI)' 카테고리의 다른 글
Comments