gpt4 book ai didi

scala - 了解 Scala 的提取器 - 具有零变量和 bool 结果的模式

转载 作者:行者123 更新时间:2023-12-04 02:08:34 27 4
gpt4 key购买 nike

目前我正在学习 Scala Extractor 并陷入以下困惑。我无法理解以下代码。在下面的模式匹配中,UpperCase() 如何返回一个字符串,而 unapply 方法旨在返回 bool 值?

  object UpperCase {
def unapply(s: String): Boolean = s.toUpperCase == s
}

println(UpperCase.unapply("RAK")) //print boolean true or false.

"RAK" match{
case status @ UpperCase() => println("yes - "+ status) //How status holds RAK not boolean value?
case _ => println("No")
}

最佳答案

您正在使用 boolean extractor ,匹配 x.unapply(v) 产生 true 的所有值 v@pattern binder ,它将变量 status 绑定(bind)到模式匹配的值。

在您的示例中,模式与绑定(bind)到变量 status 的字符串“RAK”匹配。

关于scala - 了解 Scala 的提取器 - 具有零变量和 bool 结果的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41115520/

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