gpt4 book ai didi

scala - 模式匹配 `@` 符号

转载 作者:行者123 更新时间:2023-12-03 05:47:51 30 4
gpt4 key购买 nike

鉴于此 Person 案例类:

scala> case class Person(name: String, age: Int) {}
defined class Person

...还有这个实例

scala> val b = Person("Kevin", 100)
b: Person = Person(Kevin,100)

是否有理由选择此代码(带有 @)

scala> b match {
| case p @ Person(_, age) => println("age")
| case _ => println("none")
| }
age

...关于以下内容?

scala> b match {
| case Person(_, age) => println("age")
| case _ => println("none")
| }
age

也许我缺少@的含义/力量?

最佳答案

只有当您还想处理对象本身时,才包含@。因此:

that match{
case p @ Person(_, age) if p != bill => age
case Person(_, age) => age - 15
case _ => println("Not a person")
}

否则,包含它就没有意义。

关于scala - 模式匹配 `@` 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20748858/

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