快学Scala习题解答—第十四章 模式匹配和样例类

本文介绍了Scala编程中模式匹配和样例类的应用,包括交换元组元素、交换数组前两个元素、定义及操作Multiple样例类以计算价格、使用递归实现异构列表和树的叶子节点求和,以及处理Option类型和函数组合等实践问题。
摘要由CSDN通过智能技术生成
14 模式匹配和样例类
14.1 JDK发行包有一个src.zip文件包含了JDK的大多数源代码。解压并搜索样例标签(用正则表达式case [^:]+:)。然后查找以//开头并包含[Ff]alls?thr的注释,捕获类似// Falls through或// just fall thru这样的注释。假定JDK的程序员们遵守Java编码习惯,在该写注释的地方写下了这些注释,有多少百分比的样例是会掉入到下一个分支的?
没读懂题意。。。。
14.2 利用模式匹配,编写一个swap函数,接受一个整数的对偶,返回对偶的两个组成部件互换位置的新对偶
def swap[S,T](tup: (S,T)) = {
        tup match {
                case (a ,b) => (b,a)
        }
}

println(swap[String,Int](("1",2)))

14.3 利用模式匹配,编写一个swap函数,交换数组中的前两个元素的位置,前提条件是数组长度至少为2
def swap(arr: Array[String]) = {
  arr match {
    case Array(a,b, ar @ _*) => Array(b,a) ++ ar
    case _ => arr
  }
}

println(swap(Array("1","2","3","4")).mkString)

14.4 添加一个样例类Mul
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值