Scala学习十九——解析】的更多相关文章

一.本章要点 文法定义中的二选一.拼接.选项和重复在Scala组合子解析器中对应|.~.opt和rep 对于RegexParsers而言,字符串字面量和正则表达式匹配的是词法单元 用^^来处理解析结果 在提供给^^的函数中使用模式匹配来将-结果拆开 用~>或<~来丢弃那些在匹配后不再需要的词法单元 repsep组合子处理那些常见的用分割符分割开的条目 基于词法单元的解析器对于解析器那种带有保留字和操作符的语言很有用.准备好定义你自己的词法分析器 解析器是消费读取器并产出解析结果:成功.失败或错…
一.本章要点 match表达式是更好的switch,不会有意外调入下一个分支 如果没有模式能够匹配,会抛出MatchError,可以用case _模式避免 模式可以包含一个随意定义的条件,称做守卫 你可以对表达式的类型进行匹配;优先选择模式匹配而不是isInstanceOf/asInstanceOf 你可以匹配数组,元祖,样例类的模式,然后匹配到不同部分绑定到变量 在for表达式中,不能呢匹配的情况会被安静的跳过 样例类是编译器会为之自动 二.更好的switch var sign=... val…
在强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)中,我们讨论了MCTS的原理和在棋类中的基本应用.这里我们在前一节MCTS的基础上,讨论下DeepMind的AlphaGo Zero强化学习原理. 本篇主要参考了AlphaGo Zero的论文, AlphaGo Zero综述和AlphaGo Zero Cheat Sheet. 1. AlphaGo Zero模型基础 AlphaGo Zero不需要学习人类的棋谱,通过自我对弈完成棋力提高.主要使用了两个模型,第一个就是我们上一节介绍MC…
一.本章要点 XML字面量<like>this</like>的类型为NodeSeq 可以在XML字面量中内嵌Scala代码 Node的child属性产出后代节点 Node的attributes属性产出包含节点属性的MetaData对象 \和\\操作符执行类Xpath匹配 可以在case语句中使用XML字面量匹配节点模式 使用带有RewriteRule示例的RuleTransformer来变换某个节点的后代 XML对象利用Java的XML相关方法实现XML文件的加载和保存 Const…
一.本章要点 单例类型可用于方法串接和带对象参数的方法 类型投影对所有外部类的对象都包含了其他内部类的实例 类型别名给类型指定一个短小的名称 结构类型等效于”鸭子类型“ 存在类型为泛型的通配参数提供了统一形式 使用自身类型来表明某特质对混入它的类或对象的类型要求 ”蛋糕模式“用自身类型来实现依赖注入 抽象类型必须在子类中具体化 高等类型带有本身参数化类型的类型参数 二.单例类型 给定任何引用v,可以得到类型.type,可能的两个值:v和null.例: //通过this返回自身串接 class D…
一.本章要点 在Scala中函数是”头等公民“(可以作为参数,返回值,赋值给其他); 可以创建匿名函数,通常还会交给其他函数; 函数参数可以给出需要稍后执行的行为; 许多集合方法都接受函数参数,将函数应用到集合中的值; 有许多语法上的简写让你以简短且易读的方式表达函数参数; 可以创建操作代码块的函数,像是内建的控制语句 二.作为值的函数 在Scala中,函数是头等公民,和数字一样,在变量中存放函数: import scala.math._ val num=3.14 val fun=ceil _…
一.本章要点 类可以实现任意数量的特质 特质可以要求实现它们的类具备特定的字段,方法或超类 和Java接口不同,Scala特质可以提供方法和字段实现 当你将多个特质叠加在一起时,顺序很重要——其方法先被执行的特质排在更后面 二.为什么没有多重继承 Scala和Java一样,不允许使用多重继承(如果继承的多个超类具备某些共通的方法或字段,会引起混乱,还有可能引起菱形继承问题); Java中可以实现任意多个接口(接口中只能有抽象方法,且不能有字段,Java中使用抽象基类和接口的做法让可以实现一些方法…
一.本章要点 可以为类.方法.字段.局部变量.参数.表达式.类型参数以及各种类型定义添加注解 对于表达式和类型,注解跟在被注解的条目之后 注解的形式有@Annotation.@Annotation(value)或@Annotation(name1=value1,...) @volatile.@transient.@strictfp.@native分别生成等效的Java修饰符 用@tailrec注解让你校验某个递归函数使用了尾递归化 assert函数利用了@elidable注解,可以从Scala程…
首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息.我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是应该写在…
前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分. DataSource.TransactionManager这两部分只是会根据数据访问方式有所变化,…