scala基础32-嵌套case

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)
		                ))
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值