Transforming Operator
13258 ワード
1. toArray()
2. map
機能は
3. flatMap
let disposeBag = DisposeBag()
protocol 선수 {
var 점수 : BehaviorSubject<Int> { get }
}
struct 양궁선수 : 선수 {
var 점수 : BehaviorSubject<Int>
}
let 한국양궁선수 = 양궁선수(점수: BehaviorSubject<Int>(value: 10))
let 미국양궁선수 = 양궁선수(점수: BehaviorSubject<Int>(value: 8))
let 올림픽경기 = PublishSubject<선수>()
올림픽경기
.flatMap{선수 in
선수.점수
}
.subscribe(onNext:{
print($0)
})
.disposed(by: disposeBag)
print("한국양궁선수 초기값")
올림픽경기.onNext(한국양궁선수)
print("한국양궁선수 다음 값")
한국양궁선수.점수.onNext(9)
//출력
//10
//9
4. flatMapLatest
5. materialize
6. dematerialize
例電話番号入力コード(総合練習)
let disposeBag = DisposeBag()
let input = PublishSubject<Int?>()
let list: [Int] = [1]
input
.flatMap{
$0 == nil ? Observable.empty() : Observable.just($0)
}
.map{ $0! }
.skip(while: {$0 != 0})
.take(11) //010-6676-2789
.toArray()
.asObservable()
.map {
$0.map {"\($0)"}
}
.map { numbers in
var numberList = numbers
numberList.insert("-", at: 3)
numberList.insert("-", at: 8)
let number = numberList.reduce(" ",+)
return number
}
.subscribe(onNext:{
print($0)
})
.disposed(by: disposeBag)
input.onNext(0)
input.onNext(1)
input.onNext(0)
input.onNext(6)
input.onNext(6)
input.onNext(7)
input.onNext(6)
input.onNext(2)
input.onNext(7)
input.onNext(8)
input.onNext(9)
//010-6676-2789
Reference
この問題について(Transforming Operator), 我々は、より多くの情報をここで見つけました https://velog.io/@ym980118/Transforming-Operatorテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol