gpt4 book ai didi

scala - Scala 的隐藏功能

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

每个 Scala 开发人员都应该了解 Scala 的哪些隐藏功能?

请为每个答案提供一个隐藏功能。

最佳答案

好吧,我必须再添加一个。 Scala 中的每个 Regex 对象都有一个提取器(请参阅上面 oxbox_lakes 的答案),可以让您访问匹配组。所以你可以这样做:

// Regex to split a date in the format Y/M/D.
val regex = "(\\d+)/(\\d+)/(\\d+)".r
val regex(year, month, day) = "2010/1/13"

如果您不习惯使用模式匹配和提取器,第二行看起来会很困惑。每当您定义 valvar 时,关键字后面的内容不仅仅是一个标识符,而是一个模式。这就是为什么它有效:

val (a, b, c) = (1, 3.14159, "Hello, world")

右侧表达式创建一个 Tuple3[Int, Double, String],它可以匹配模式 (a, b, c)

大多数时候,您的模式使用属于单例对象成员的提取器。例如,如果您编写如下模式

Some(value)

然后你隐式调用提取器Some.unapply

但是您也可以在模式中使用类实例,这就是这里发生的情况。 val 正则表达式是 Regex 的一个实例,当您在模式中使用它时,您会隐式调用 regex.unapplySeq (unapplyunapplySeq 超出了本答案的范围),它将匹配组提取到 Seq[String] 中,其中的元素按顺序分配给变量年、月、和日期。

关于scala - Scala 的隐藏功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1025181/

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