在Scala中,你可以做一些事情,例如将函数变量作为参数等传递,但我想知道是否可以有更多类似模板的模板?
在这个简单的例子中(不编译,只是我想要的骨架),包装函数包含一些几乎完全相同的代码,但只有一行不同。假设包装器是一个长骨架,我不想写两次,我可以传入sub1
或sub2
吗?请注意,这两个函数具有不同的签名,这使得它不适合于咖喱解决方案:
object MyTemplate{
def sub1(a: Int): String={
a.toString
}
def sub2(b: String, c: String): Int={
return b.toInt*x
}
def wrapper(i: Int)(f: ???): Double ={
if (xxxx)
do something
else
do something else
[this line needs to call either sub1() or sub2() ]
common code continues
}
}
答案 0 :(得分:1)
是。我相信,通过类型参数,功能组合,currying等,你可以找到一种方法来做你想要的。如果您的问题没有更具体的细节,那么很难提供更具体的答案。