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() calculateDivision() } }) subjectCalc.onNext(this) }
So, now, with the knowledge of functional programming, we can easily...