0

在 Scala 中,您可以执行诸如将函数变量作为参数传递等操作,但我想知道是否可以有更多类似模板的功能?

在这个简单的例子中(不编译,只是我想要的骨架),包装函数包含一些几乎完全相同的代码,但只有一行不同。假设包装器是一个我不想写两次的长骨架,我可以传入其中一个吗sub1sub2请注意,这两个函数具有不同的签名,这使得它不适合柯里化解决方案:

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
  } 
}
4

1 回答 1

1

是的。我相信通过类型参数、函数组合、柯里化等,你可以找到一种方法来做你想做的事。如果您的问题没有更多细节,但很难提供更具体的答案。

于 2013-01-19T05:41:48.097 回答