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 | 31 |
Tags
- UICollectionView
- MVVM
- Refactoring
- 리펙터링
- uiscrollview
- SWIFT
- swiftUI
- 리펙토링
- rxswift
- swift documentation
- Xcode
- 애니메이션
- combine
- Clean Code
- ribs
- 리팩토링
- Human interface guide
- 스위프트
- ios
- collectionview
- 클린 코드
- map
- Observable
- UITextView
- RxCocoa
- HIG
- Protocol
- uitableview
- clean architecture
- tableView
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