基本的に、使用する前に変数に格納することなく、カスタム エクストラクタを構築できるようにしたいと考えています。
これは私がどのように使用するかの実際の例ではありません。正規表現または構造のような他の文字列パターンの場合に使用される可能性が高くなりますが、うまくいけば、私が探しているものを説明できます:
def someExtractorBuilder(arg:Boolean) = new {
def unapply(s:String):Option[String] = if(arg) Some(s) else None
}
//I would like to be able to use something like this
val {someExtractorBuilder(true)}(result) = "test"
"test" match {case {someExtractorBuilder(true)}(result) => result }
//instead I would have to do this:
val customExtractor = someExtractorBuilder(true)
val customExtractor(result) = "test"
"test" match {case customExtractor(result) => result}
1 つのカスタム エクストラクタを実行するだけでは大きな違いはありませんが、case ステートメント用に大量のエクストラクタのリストを作成する場合は、すべてのエクストラクタをその使用法から分離することで、読みにくくなる可能性があります。
答えはノーだと思いますが、これはできませんが、最初に聞いてみようと思いました:D