我经常发现我需要使用内部递归辅助函数编写函数,它采用与外部函数相同的参数列表,但只有一个额外的累加器参数:
def encode(tree : Tree, text: String):String = {
def rec(tree: Tree, text:String, result:String):String = ???
rec(tree, text, "")
}
我想将其简化为:
def encode(tree : Tree, text: String)(implicit result:String = "" ):String
this 可以去掉内部函数定义,但是有一个问题,看我是否需要调用lookup
里面 的函数encode
,并且lookup
还带了String类型的隐式参数,implicit result:String = ""
隐式传递给lookup
函数。
def lookup(tree : Tree, text: String)(implicit result:String = "" ):String
我不希望这种情况发生,有没有办法限制隐式参数在lookup
该函数之外解析?还是其他更好的想法?