gpt4 book ai didi

scala - 在 Scala 中实例化赋值运算符两侧的对象;它是如何工作的

转载 作者:行者123 更新时间:2023-12-03 18:15:38 26 4
gpt4 key购买 nike

我想了解以下行背后的机制:

 val List(x) = Seq(1 to 10)

这种机制的名称是什么?这与类型转换相同,还是有其他事情发生? (在 Scala 2.11.12 中测试。)

最佳答案

该机制称为模式匹配。

这是官方文档:https://docs.scala-lang.org/tour/pattern-matching.html

这也适用于理解:

for{
People(name, firstName) <- peoples
} yield s"$firstName $name"

以你的例子:
val List(x) = Seq(1 to 10)
x是该列表的内容 - 在您的情况下 Range 1 to 10 (您有一个包含一个元素的列表)。

如果您确实有一个包含多个元素的列表,则会引发异常
val List(x) = (1 to 10).toList // -> ERROR: undefined

所以正确的模式匹配是:
val x::xs = (1 to 10).toList

现在 x是第一个元素(头)和 xs其余(尾部)。

关于scala - 在 Scala 中实例化赋值运算符两侧的对象;它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55722126/

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