鉴于此 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")
}
否则,包含它就没有意义。