随笔分类 -  Scala

特质trait
摘要:特质(trait)是scala里代码服用的基础单元。特质封装了方法和字段的定义,并可以通过“混入”到类中重用它们。与类的继承时每个类都只能继承唯一的超类不同,类可以混入任意多个特质。特质的定义除了使用关键字trait之外,与类定义无异,如代码1-1 代码1-1 这个特质名为Fish,它没有声明超类, 阅读全文
posted @ 2017-05-01 11:51 百里琰 阅读(502) 评论(0) 推荐(0)
控制抽象
摘要:控制抽象 所有的函数都可以被分成通用部分,以及非通用部分,这将导致代码存在大量的冗余。 代码1-1 代码1-1中,fileEnding和fileContains两个方法,一个是查询以query结尾的,一个是查询包含query的,虽然功能不同,但代码大部分却相同,随着功能的增加,冗余的代码将会越来越多 阅读全文
posted @ 2017-04-29 20:49 百里琰 阅读(385) 评论(0) 推荐(0)
函数和闭包
摘要:函数和闭包 Scala的函数式头等函数,你不仅可以定义和调用函数,还可以把它们写成匿名的字面量,并把它们作为值传递。Scala函数字面量的语法:(x: Int, y: Int) => x + y。函数字面量被编译进类,并在运行期实例化为函数值。因此,函数字面量和函数值的区别在于函数字面量存在于源代码 阅读全文
posted @ 2017-04-28 21:35 百里琰 阅读(309) 评论(0) 推荐(0)
函数式对象
摘要:函数式对象 本文的重点在于定义函数式对象,也就是说,不具备任何可变状态的对象的类。不可变对象提供了若干强于可变对象的优点和一个潜在的缺点: 优点: 首先,不可变对象常常比可变对象更易理清头绪,因为它们的内部状态不因时间的变化而变化。 其次,当你把可变对象传递给其他方法或函数时,可能在执行代码的过程中 阅读全文
posted @ 2017-04-27 21:25 百里琰 阅读(443) 评论(0) 推荐(0)