概述
偏函数提供了更简洁的语法,可以简化函数的定义。配合集合的函数式编程,可以让代码更加优雅。
所谓的偏函数是指 被包在花括号内没有match的一组case语句 , 偏函数是PartialFunction[A, B]类型的的一个实例对
象, 其中A代表输入参数类型, B代表返回结果类型.
格式
val 对象名 = {
//这对大括号及其内部的一组case语句, 就组成了一个偏函数.
case 值1 => 表达式1
case 值2 => 表达式2
case 值3 => 表达式3
...
}
入门案例
需求
定义一个偏函数,根据以下方式返回
object demo {
def main(args: Array[String]): Unit = {
val result: PartialFunction[Int,String] = {
case 1 => "1"
case 2 => "2"
case 3 => "3"
case _ => "其他"
}
println(result(1))
println(result(2))
println(result(3))
println(result(4))
}
}
结合map函数使用
需求
- 定义一个列表,包含1-10的数字
- 请将1-3的数字都转换为[1-3]
- 请将4-8的数字都转换为[4-8]
- 将其他的数字转换为(8-*]
- 打印结果.
object 结合map进行转换 {
def main(args: Array[String]): Unit = {
//1. 定义一个列表,包含1-10的数字
val list = (1 to 10).toList
val strings = list.map {
//2. 请将1-3的数字都转换为[1-3]
case x if x >= 1 && x <= 3 => "[1-3]"
//3. 请将4-8的数字都转换为[4-8]
case x if x >= 4 && x <= 8 => "[4-8]"
//4. 将其他的数字转换为(8-*]
case _ => "(8-*]"
}
//5. 打印结果.
println(strings)
}
}