我知道我可以做instanceOf
檢查針對Function1
或Function2
等,但有沒有一種通用的方法來查看是否有功能或不是功能(它可以有任意數量的參數)。我試圖定義這樣的事情:什麼是Scala中所有函數的超類型?
type FuncType = (Any*) -> Any
但是,這也沒有工作。基本上我有一些看起來像這樣的代碼:
call = (name: Any, args: Any*) -> if name.isFunction then name.castAs[Function].apply(args) else name
aFunction = (name: String) => "Hello " + name
notAFunction = "Hello rick"
call(aFunction, "rick")
call(notAFunction)