Scala函数类型,包含任何类型的变量参数列表

时间:2014-11-29 11:42:08

标签: scala

我正在尝试创建一个泛型函数参数,它接受任何参数,并返回任何结果。我想创建一个更动态的环境来调用它们,所以例如我有这个代码:

object Environment {
  type Func = (Any *) => (Any)

  def apply(): Environment = new Environment(Map(
    "sin" -> math.sin,
    "cos" -> math.cos,
    "tan" -> math.tan,
    "pi" -> Function.const(math.Pi),
    "sqrt" -> math.sqrt
 ))
}

如果我将Func类型更改为:

,则会导致不匹配错误
type Func = (Nothing *) => (Any)

它可以工作,但是我不能像以下那样调用函数:

environment.symbols("cos").apply(0)

因为类型不匹配,但这次调用apply。

我的问题是,如果有任何方式以更动态的方式调用这些函数,而不进行类型检查?

0 个答案:

没有答案