37
鉴于这种情况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
也许我错过了@
的意思/力量?
您使用分号来引用对象本身。我想知道为什么分号不会被重用来引用对象本身? – Val
@Val:他的代码中没有分号? – cdmckay
很高兴知道!在阅读这个答案之前,我会这样写:'case p:Person如果p!= bill => p.age' – erdavila