Scala
文章平均质量分 89
大冰的小屋
这个作者很懒,什么都没留下…
展开
-
快学Scala第10章----特质
本章要点类可以实现任意数量的特质特质可以要求实现它们的类具备特定的字段、方法或超类和Java接口不同,Scala特质可以提供方法和字段的实现当你将多个特质叠加在一起时,顺序很重要—-其方法先被执行的特质排在更后面为什么没有多重继承Scala和Java一样不允许类从多个超类继承;从多了超类继承可能会导致许多问题,例如两个超类有相同的方法,子类该如何使用和菱形继承。在java 中类只能扩展自一原创 2016-06-26 09:47:54 · 2872 阅读 · 0 评论 -
快学Scala第9章----文件和正则表达式
本章要点Source.fromFile(…).getLines.toArray 输出文件文件的所有行Source.fromFile(…).mkString 以字符串形式输出文件内容将字符串转换为数字,可以用toInt或toDouble方法使用Java的PrintWriter来写入文本文件- “正则”.r 是一个Regex对象如果你的正则表达式包含反斜杠或引号的话,用”“”…”“”如果正则原创 2016-06-21 23:40:21 · 661 阅读 · 0 评论 -
快学Scala第8章----继承
快学Scala第8章—–继承本章要点extends、final关键字和Java中相同重写方法时必须用override只有主构造器可以调用超类的主构造器你可以重写字段扩展类Scala扩展类的方式和Java一样—–使用extends关键字class Employee extends Person { var salary = 0.0 ...}可以将类声明为final,这样就不原创 2016-06-20 21:43:36 · 904 阅读 · 0 评论 -
快学Scala第17章----类型参数
本章要点类、特质、方法和函数都可以有类型参数将类型参数放置在名称之后,以方括号括起来。类型界定的语法为 T <: UpperBound、 T >: LowerBound、 T <% ViewBound、 T : ContextBound你可以用类型约束来约束另一个方法,比如(implicit ev: T <:< UpperBound)用+T(协变)来表示某个泛型类的子类型关系和参数T方向一原创 2016-07-05 23:11:15 · 615 阅读 · 0 评论 -
快学Scala第7章----包和引入
快学Scala第7章—–包和引入本章要点包也可以像内部类那样嵌套包路径不是绝对路径包声明链x.y.z并不自动将中间包x和x.y变成可见位于文件顶部不带花括号的包声明在整个文件范围内有效包对象可以持有函数好变量引入语句可以引入包、类和对象引入语句可以出现在任何位置引入语句可以重命名和隐藏特定成员java.lang、scala和Predef总是被引入包要增加条目到包中:package原创 2016-06-19 15:56:37 · 916 阅读 · 0 评论 -
快学Scala第15章----注解
本章要点你可以为类、方法、字段、局部变量、参数、表达式、类型参数以及各种类型定义添加注解。对于表达式和类型,注解跟在被注解的条目之后注解的形式有: @Annotation、 @Annotation(value) 或 @Annotation(namel = value, …)@volatitle、 @transient、 @strictfp 和 @native 分别生成等效的Java修饰符。原创 2016-07-04 21:45:16 · 1480 阅读 · 0 评论 -
快学Scala第1章--基础
快学Scala第一章–基础本章的要点包括:使用Scala解释器用var 和 val 定义变量数字类型使用操作符浏览ScaladocScala 解释器Scala解释器可以与Python的解释器类似,边编写边解释执行,非常方便。但是从技术上讲,Scala程序并不是一个解释器,实际上发生的是,你输入的内容被快速的编译成字节码,然后这段字节码由Java虚拟机执行,因此被称为REPL(读取-求值-原创 2016-06-13 22:11:33 · 867 阅读 · 0 评论 -
快学Scala第2章--控制结构和函数
快学Scala第二章–控制结构和函数本章要点if表达式有值。块也有值—-是它最后一个表达式的值。Scala的for循环就像是增强版的Java for循环分号(在绝大多数情况下)不是必须的void类型是Unit避免在函数定义中使用return注意别在函数式定义中漏掉了=异常的工作方式和Java或C++中基本一样,不同的是你在catch语句中使用“模式匹配”Scala没有受检异常条件原创 2016-06-14 23:33:32 · 2126 阅读 · 0 评论 -
快学Scala第3章--数组相关操作
快学Scala第三章–数组相关操作本章的主题若长度固定则使用Array,若长度可能有变化则使用ArrayBuffer提供初始值时不要使用new用()来访问元素用for(elem <- arr) 来遍历元素用for(elem <- arr if…)… yield … 来将原数组转型为新数组Scala数组和Java数组可以互操作;用ArrayBuffer,使用scala.collection原创 2016-06-16 00:20:12 · 695 阅读 · 0 评论 -
快学Scala第4章--映射和元组
快学Scala第四章–映射和元组映射是键/值(key-value)对偶的集合。Scala有一个通用的叫法–元组—–n个对象的聚集,并且不一定要相同类型的。而对偶不过是n=2的元组本章要点Scala有十分容易的语法来创建、查询和遍历映射你需要从可变的和不可变的映射中做出选择默认情况下,你得到的是一个哈希映射,不过你也可以指明要树形映射你可以很容易的在Scala映射和Java映射之间来回切换元原创 2016-06-18 00:04:30 · 687 阅读 · 0 评论 -
快学Scala第5章--类
快学Scala第5章—–类本章要点类中的字段自动带有getter方法和setter方法你可以用定制的getter/setter方法替换掉字段的定义,而不必修改使用类的客户端—–这就是所谓的统一访问原则用@BeanProperty注解来生成JavaBeans的getXxx/setXxx方法。每个类都有一个主要的构造器,这个构造器和类定义交织在一起。它的参数直接成为类的字段。主构造器执行类体中所原创 2016-06-18 18:44:39 · 731 阅读 · 0 评论 -
快学Scala第14章----模式匹配和样例类
本章要点match表达式是一个更好的switch,不会有意外掉入到下一个分支的问题。如果没有模式能够匹配,会抛出MatchError。可以用case _ 模式来避免。模式可以包含一个随意定义的条件,称作守卫。你可以对表达式的类型进行匹配;优先选择模式匹配而不是isInstanceOf/asInstanceOf。你可以匹配数组、元组和样例类的模式,然后将匹配到的不同部分绑定到变量。在for原创 2016-07-02 21:29:23 · 2732 阅读 · 0 评论 -
快学Scala第20章----Actor
本章要点每个actor都要扩展Actor类并提供act方法要往actor发送消息,可以用actor ! message .消息发送是异步的:“发完就忘”要接收消息,actor可以调用receive或react,通常是在循环中这样做。receive/react的参数是由case语句组成的代码块(从技术上讲,这是一个偏函数)不同actor之间不应该共享状态。总是使用消息来发送状态不要直接调原创 2016-07-13 22:31:18 · 1499 阅读 · 0 评论 -
快学Scala第18章----高级类型
本章要点单例类型可用于方法串接和带对象参数的方法。类型投影对所有外部类型的对象都包含了其内部类的实例。类型别名给类型指定一个短小的名称。结构类型等效于“鸭子类型”。存在类型为泛型类型的通配参数提供了统一形式。使用自身类型来表明某特质对混入它的类或对象的类型要求。“蛋糕模式”用自身类型来实例依赖注入。抽象类型必须在子类中被具体化。高等类型带有本身为参数化类型的类型参数。单例类型给定原创 2016-07-13 22:25:50 · 1619 阅读 · 0 评论 -
快学Scala第13章----集合
本章要点所有集合都扩展自Iterable特质集合有三大类:序列、集、映射对于几乎所有集合类,Scala都同时提供了可变的和不可变的版本Scala列表要么是空的,要么拥有一头一尾,其中尾部本身又是一个列表集是无先后次序的集合用LinkedhashSet 来保留插入顺序,或者用SortedSet来按顺序进行迭代‘+’ 将元素添加到无先后次序的集合中; +: 和 :+ 向前或向后追加到序列;原创 2016-06-28 23:48:15 · 3136 阅读 · 0 评论 -
快学Scala第12章----高阶函数
本章要点在Scala中函数是“头等公民”,就和数字一样;你可以创建匿名函数,通常还会把它们交给其他函数;函数参数可以给出需要稍后执行的行为;许多集合方法都接受函数参数,将函数应用到集合中的值;有很多语法上的简写让你以简短且易读的方式表达函数参数;你可以创建操作代码块的函数,它们看上去就像是内建的控制语句。作为值的函数在Scala中,你可以在变量中存放函数:import scala.ma原创 2016-06-26 22:42:52 · 1180 阅读 · 0 评论 -
快学Scala第11章----操作符
本章要点标识符由字母、数字或运算符构成。一元和二元操作符其实是方法调用操作符优先级取决于第一个字符,而结合性取决于最后一个字符apply 和 update方法在对expr(args)表达式求值时被调用。提取器从输入中提取元组或值的序列。标识符变量、函数、类等名称统一称为标识符;虽然在Scala中有更多的选择,可以由字母、数字和各种运算符构成,但是如果语义不够明确,还是不要随意使用(个人觉原创 2016-06-26 14:25:26 · 533 阅读 · 0 评论 -
快学Scala第6章--对象
快学Scala第6章—–对象(Object)本章要点:用对象作为单例或者存放工具方法类可以拥有一个同名的伴生对象对象可以扩展类或特质对象的apply方法通常用来构造伴生类的新实例如果不想显示定义main方法,可以使用扩展APP特质的对象你可以通过扩展Enumeration对象来实现枚举单例对象需要特别说明的,与C++/Java不同的是,Scala没有静态方法和静态字段,你可以用Obje原创 2016-06-19 13:41:56 · 605 阅读 · 0 评论