我正在尝试创建一个泛型函数参数,它接受任何参数,并返回任何结果。我想创建一个更动态的环境来调用它们,所以例如我有这个代码:
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。
我的问题是,如果有任何方式以更动态的方式调用这些函数,而不进行类型检查?