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
最新推荐文章于 2023-03-20 08:20:42 发布