【Scala】09 偏函数 PartialFunction】的更多相关文章

https://blog.csdn.net/bluishglc/article/details/50995939 从使用case语句构造匿名函数谈起在Scala里,我们可以使用case语句来创建一个匿名函数(函数字面量),这有别于一般的匿名函数创建方法.来看个例子: scala> List(1,2,3) map {case i:Int=>i+1}res1: List[Int] = List(2, 3, 4) 这很有趣,case i:Int=>i+1构建的匿名函数等同于(i:Int)=&g…
Scala中有一个很有用的traits叫PartialFunction,我看了下别人的翻译叫做偏函数,但是我觉得部分函数更加确切. 那么PartialFunction是做什么用的呢?简单点说PartialFunction用在模式匹配中,是一个不完整的函数,它只实现了函数的部分功能,也就是列举了部分case的情况. 我们先看下PartialFunction的定义: trait PartialFunction[-A, +B] extends (A => B) { ... def isDefinedA…
如果你想定义一个函数,而让它只接受和处理其参数定义域范围内的子集,对于这个参数范围外的参数则抛出异常,这样的函数就是偏函数(顾名思异就是这个函数只处理传入来的部分参数). 偏函数是个特质其的类型为PartialFunction[A,B],其中接收一个类型为A的参数,返回一个类型为B的结果. 其有个重要的函数就是: def isDefinedAt(x: A): Boolean //作用是判断传入来的参数是否在这个偏函数所处理的范围内 定义一个普通的除法函数: scala> val divide =…
Partial函数的定义 scala> val isVeryTasty: PartialFunction[String, String] = { case "Glazed Donut" | "Strawberry Donut" => "Very Tasty"}isVeryTasty: PartialFunction[String,String] = <function1> scala> isVeryTasty(&qu…
Effective Scala Marius Eriksen, Twitter Inc.marius@twitter.com (@marius)[translated by hongjiang(@hongjiang)] Table of Contents 序言 格式化: 空格, 命名, Imports, 花括号, 模式匹配, 注释 类型和泛型: 返回类型注解(annotation), 变型, 类型别名, 隐式转换 集合: 层级, 集合的使用, 风格, 性能, Java集合 并发: Future,…
访问修饰符 格式:private[x]或protected[x],x指某个所属包.类或单例对象,表示被修饰的类(或方法.单例对象),在X域中公开,在x域范围内都可以访问: private[包名]:在该包名作用域内,被修饰域都能被访问: private[类名]:在该类的作用域,被修饰域都能被访问: private[this]:仅能在包含了定义的同一对象中访问,用于保证同一类中不能被其它对象访问: 例子: package tests{     private[tests] class Test{  …
如果你想定义一个函数,而让它只接受和处理其参数定义域范围内的子集,对于这个参数范围外的参数则抛出异常,这样的函数就是偏函数(顾名思异就是这个函数只处理传入来的部分参数). 偏函数是个特质其的类型为PartialFunction[A,B],其中接收一个类型为A的参数,返回一个类型为B的结果. 其有个重要的函数就是: def isDefinedAt(x: A): Boolean //作用是判断传入来的参数是否在这个偏函数所处理的范围内 定义一个普通的除法函数: scala> val divide =…
关于Scala中的正则表达式与模式匹配结合的正则表达式Reg 正则表达式的实现:正则表达式的定义与其它语言差不多,只需在表达式后加一个.r,并且可以遍历相应的表达式进行匹配 //定义的正则表达式 val regex="""([0-9]+) ([a-z]+)""".r //由数字与字母组成的常量 val numPattern = "[0-9]+".r //由数字组成的常量 val numberPattern = "&q…
1       快速入门... 4 1.1             分号... 4 1.2             常变量声明... 4 1.2.1         val常量... 4 1.2.2         var变量... 4 1.2.3         类型推导... 5 1.2.4         函数编程风格... 5 1.3             Range. 5 1.4             定义函数... 6 1.5             while.if 6 1.6…
文章内容全部来自:http://twitter.github.io/scala_school/zh_cn/index.html 表达式 scala> 1 + 1 res0: Int = 2 值 你可以给一个表达式的结果起个名字赋成一个不变量(val). scala> val two = 1 + 1 two: Int = 2 变量 如果你需要修改这个名称和结果的绑定,可以选择使用var. scala> var name = "steve" name: java.lang…