これは問題のコードです。説明/説明の一部が以下に含まれています
オブジェクト関数{ インポートscala.reflect.Manifest プライベート変数関数:List [(Manifest [_]、Any、String)] = List() def add [T](desc:String、func:T)(implicit m:Manifest [T]){ 関数::=(m、func、desc) } def get [T]()(implicit m:Manifest [T]):List [(T、String)] = { 関数flatMap{ case(t、f、s)=> if(t <:<m)Some(f.asInstanceOf [T]、s)elseなし } } def getInputs [T]()(implicit m:Manifest [T]):List [(T => Any、String)] = { 関数flatMap{ case(t、f、s)=> if(t <:<(T => Any))Some(f.asInstanceOf [T => Any]、s)else None } }
基本的に、私の目標は、関数のリストを保持し、それらのタイプ(入力と出力)を保持し、それらが入力として受け取るものと出力として受け取るものに基づいて特定の関数を検索する機能を用意することです。ある種のモンキーパッチがなければ、これはスカラでは不可能だと私は信じ始めています。これは避けたいと思います。