abstract class Item
case class Book(description: String, price: Double) extends Item
//Item*: 不定参数
case class Bundle(description: String, price: Double, items: Item*) extends Item
object Pattern_match_case_class_nested {
def main(args: Array[String]) {
def casclass_nested(person: Item) = person match {
//使用@来引用匹配到的对象
case Bundle(_, _, art @ Book(_, _), rest @ _*) => println(art.description + " : " + art.price)
case Bundle(_, _, Book(descr, _), _*) => println("The first description is: " + descr)
case _ => println("Oops!")
}
casclass_nested(Bundle("111 Special's", 30.0,
Book("Scala for the Spark Developer", 69.5),
Bundle("Hadoop", 40.0),
Book("Hive", 75.5),
Book("HBase", 32.9)
))
}
}scala基础32-嵌套case
最新推荐文章于 2024-12-08 12:46:24 发布
本文介绍了一个Scala中的模式匹配案例,展示了如何使用模式匹配处理嵌套的case class,并通过具体实例演示了模式匹配的灵活性和强大功能。
1194

被折叠的 条评论
为什么被折叠?



