scala - Scala 是否有相当于 ML 的 "as"构造的语句?

标签 scala pattern-matching sml

在机器学习中,可以为匹配模式的每个元素分配名称:

fun findPair n nil = NONE
| findPair n (head as (n1, _))::rest =
    if n = n1 then (SOME head) else (findPair n rest)

在此代码中,我为列表的第一对定义了一个别名,并匹配该对的内容。 Scala 中有等效的构造吗?

最佳答案

你可以做variable binding带有 @ 符号,例如:

scala> val wholeList @ List(x, _*) = List(1,2,3)
wholeList: List[Int] = List(1, 2, 3)
x: Int = 1

关于scala - Scala 是否有相当于 ML 的 "as"构造的语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13205726/

相关文章:

java - clojure/scala 互操作?

scala - Scala 中 foldLeft 的实现

Scala 编译错误 : not found: type _$1

javascript - 当字符串没有协议(protocol)时匹配主机名 ://?

functional-programming - 从 sml 中的整数对列表返回偶数列表

sml - 如何在两个整数范围内嵌套 for 循环?

java - 哪些场景下 JVM 会被杀死?

list - 如何在 Scala 中保持表达式的函数式风格

查找列表中哪些哈希与另一个哈希最快匹配的算法? (这在标题上解释起来很复杂)

sml - 如何在 Windows 上访问 Poly/ML 中的库?