相关疑难解决方法(0)

是否可以在case语句的主体中(或者在使用提取器的任何其他地方)使用参数自定义提取器?

基本上,我希望能够构建一个自定义提取器,而无需在使用它之前将其存储在变量中.

这不是我将如何使用它的一个真实示例,它更可能用于正则表达式或其他字符串模式(如构造),但希望它能解释我正在寻找的内容:

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}
Run Code Online (Sandbox Code Playgroud)

当只做一个自定义提取器时,它没有太大的区别,但如果你为case语句构建一个大的提取器列表,它可能会通过将所有提取器与它们的使用分开来使事情变得更难.

我希望答案是不,你不能这样做,但我想我先问一下:D

scala unapply extractor

14
推荐指数
2
解决办法
1158
查看次数

标签 统计

extractor ×1

scala ×1

unapply ×1