gpt4 book ai didi

scala - 是否可以在case语句的正文中(或在提取器将要使用的其他任何地方)使用参数自定义提取器?

转载 作者:行者123 更新时间:2023-12-03 22:24:27 24 4
gpt4 key购买 nike

基本上,我希望能够构建自定义提取器,而不必在使用前将其存储在变量中。

这不是我将如何使用它的真实示例,它更可能用于正则表达式或诸如构造之类的其他字符串模式,但希望它能解释我在寻找什么:

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}


当只执行一个自定义提取器时,并​​没有什么区别,但是,如果您要为case语句构建大量的提取器,则通过将所有提取器与用法分离开来可能会使事情变得更难阅读。

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

最佳答案

不。

8.1.7提取器模式


提取器模式x(p 1,...,
p n)其中n≥0是相同的
句法形式作为构造函数
模式。但是,不是案例
类,稳定标识符x表示
具有成员方法的对象
命名为unapply或unapplySeq
匹配模式。

关于scala - 是否可以在case语句的正文中(或在提取器将要使用的其他任何地方)使用参数自定义提取器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2411573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com