如何确保仅在Scala方法中传递特定目的函数

时间:2017-06-21 22:27:38

标签: scala functional-programming

我正在阅读有关Scala的一些资料,在那里我遇到了这个方法签名:

def calculateStateTax(f: Double => Double, personsIncome: Double): Double = ...

我想知道,如果我们有计算不同州税收的函数,我们如何确保传入的函数用于计算州税?也就是说,它不是Double上的其他操作。感谢!!!

1 个答案:

答案 0 :(得分:0)

更多的是在建模方面,你可以将Double包装到案例类Tax(money:Double)然后在你将拥有的方法签名上:

def calculateStateTax(f: Tax => Double, personsIncome: Double): Double = ...

然后你只需要相信你使用的f方法的作者正确地执行它,或者你总是可以检查方法调用。