我有一个名为collatz的函数,我需要查找它调用自身的次数,但不允许使用任何变量。
该功能与vars完美配合,但我必须使用vals。
如果sinanspd的答案不能回答您的问题,请参考以下示例代码。
让我们说您的函数collatz具有如下签名:
def collatz(input: Type1): Type2 = ???
计算调用次数的方法是修改collatz本身,或者使用某些包装函数。
def counter(oldCount: Int,fun: Type1 => Type2,input: Type1): (Int,Type2) = {
val output = fun(input)
(oldCount + 1,output)
}
第一次调用计数器时,将oldCount设置为0进行调用。每次调用计数器时,请传入旧版本的count。输出元组的第一个值将是新计数。