So, now, after trying to understand the ReactiveCalculator class from the previous chapter, we will try to optimize the code as well. Let's first take a look at the init block of the ReactiveCalculator class:
init{
nums = Pair(a,b)
subjectAdd.map({ it.first+it.second }).subscribe({println
("Add = $it")} )//1
subjectSub.map({ it.first-it.second }).subscribe({println
("Substract = $it")} )
subjectMult.map({ it.first*it.second }).subscribe
({println("Multiply = $it")} )
subjectDiv.map({ it.first/(it.second*1.0) }).subscribe
({println("Divide = $it")} )
subjectCalc.subscribe({
with(it) {
calculateAddition()
calculateSubstraction()
calculateMultiplication()
...