私の一般的な方法に気づきました:
def method[A](list: List[A]): A = { ... }
非ジェネリック関数型になります
val methodFun = method _
-> methodFun : (scala.List[Nothing]) => Nothing
ジェネリック型を保持する代わりに、カリー化するとき。ジェネリック型情報を保持する可能性はありますか? String
たとえば、設定することにより、明示的な型を定義できることがわかりました
val methodFun = method[String] _
-> methodFun : (scala.List[String]) => String
しかし、これは私が本当に欲しいものではありません。私は現在、この問題を回避するために raw 型を使用する傾向があります (方法がわかり次第) またはより良い解決策はありますか?
手伝ってくれてありがとう!
PS: やりたい理由:
def method1[A](list: List[A]): A = { ... }
def method2[A](element: A): Int = { ... }
// This will not cause a compiler error as stated before
// but this will result in (List[Nothing]) => Int
// but I want a (List[A]) => Int
val composedFun = method1 _ andThen method2
// The next line is possible
// but it gives me a (List[String]) => Int
val composedFunNonGeneric = method1[String] _ andThen method2[String]