Observable.from(commands)
.merge()
.scan(CalculatorState.CLEAR_STATE) { a, x in
return a.tranformState(x)
}
.debug("debugging")
.subscribe(onNext: { [weak self] calState in
self?.resultLabel.text = calState.inScreen
switch calState.action {
case .operation(let operation):
switch operation {
case .addition:
self?.lastSignLabel.text = "+"
case .subtraction:
self?.lastSignLabel.text = "-"
case .multiplication:
self?.lastSignLabel.text = "x"
case .division:
self?.lastSignLabel.text = "/"
}
default:
self?.lastSignLabel.text = ""
}
})
.addDisposableTo(disposeBag)
rx
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一个半月前AMD正式发布了新一代的Radeon™ RX系列显卡,其中高端的RX 580,RX570以及低端的RX5...
- 这个是Rx Observable和开发者对话的第六部,前面5部已经由掘金翻译计划翻译完毕,我也是看到前五篇,意犹未...
- 注意:使用本例中的代码首先应该导入头文件,代码如下: Combination Operators 联合操作使多个源...