Scala
文章平均质量分 89
dabokele
这个作者很懒,什么都没留下…
展开
-
Programming In Scala笔记-第二、三章
本系列博客以《Programming in Scala 2nd Edition》为主,围绕其中的代码片段进行学习和分析。 本文主要梳理Chapter2和Chapter3中涉及到的主要概念。原创 2016-09-08 22:54:27 · 1164 阅读 · 0 评论 -
Programming In Scala笔记-第八章、函数与闭包
当程序的代码量增大时,就需要对各功能模块进行分割,这些分割的小模块就是本文中接下来会进行分析的函数。接下来的部分会讲解包括函数嵌套,函数字面量,以及函数值等概念。一、方法 一会函数一会方法的,是不是有点晕?严格来说,任何方法都是一个函数,只不过我们称呼那些写在类定义中的某个对象拥有的函数成员为方法。例如下面代码中的LongLines对象就定义了两个方法,可以用于打开指定文件名的文件并读取其中的内容原创 2016-09-29 23:15:07 · 884 阅读 · 0 评论 -
Programming In Scala笔记-第十六章、Scala中的List
本章主要分析Scala中List的用法,List上可进行的操作,以及需要注意的地方。一、List字面量 首先看几个List的示例。val fruit = List("apples", "oranges", "pears")val nums = List(1, 2, 3, 4)val diag3 = List( List(1, 0, 0), List(0, 1, 0),原创 2016-10-18 00:01:07 · 1835 阅读 · 0 评论 -
Programming In Scala笔记-第十一章、Scala中的类继承关系
本章主要从整体层面了解Scala中的类层级关系。一、Scala的类层级 在Java中Object类是所有类的最终父类,其他所有类都直接或间接的继承了Object类。在Scala中所有类的最终父类为Any类,所以Any类中的所有方法都可以在Scala中任意类中使用。但是这并不是说Scala中的Any类就类似于Java中的Object类,Scala中真正地位类似于Java中Object类的是AnyRe原创 2016-10-06 23:14:55 · 1627 阅读 · 0 评论 -
Programming In Scala笔记-第九章、控制抽象
本章主要讲解在Scala中如何使用函数值来自定义新的控制结构,并且介绍Curring和By-name参数的概念。一、减少重复代码1、重复代码的场景描述 前面定义的函数,将实现某功能的代码封装到一起形成一个特定功能的代码块。那么,正常情况下,各函数之间有可能会有部分逻辑是相同的。不好理解的话,看看下面的代码。object FileMatcher { private def filesHere =原创 2016-10-04 00:16:17 · 919 阅读 · 0 评论 -
Programming In Scala笔记-第七章、Scala中的控制结构
所谓的内建控制结构是指编程语言中可以使用的一些代码控制语法,如Scala中的if, while, for, try, match, 以及函数调用等。需要注意的是,Scala几乎所有的内建控制结构都会返回一个值,这是由于函数式编程语言被认为是计算值的过程,所以作为函数式编程语言的一个组件,这些内建控制结构也不例外。 如果不好理解函数式编程语言中每一个内建控制结构都会返回一个值这一概念,可以回想一原创 2016-09-28 23:09:39 · 1400 阅读 · 0 评论 -
Programming In Scala笔记-第十七章、Scala中的集合类型
本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple。 一、序列 序列类型的对象中包含多个按顺序排列好的元素,可以访问其中特定位置的元素。序列类型主要包括List,Array, ListBuffer, ArrayBuffer 。1、List List在前一章已经介绍过,略。2、Array 数组在很多编程原创 2016-10-20 22:58:07 · 1183 阅读 · 0 评论 -
Programming In Scala笔记-第十九章、类型参数,协变逆变,上界下界
本章主要讲Scala中的类型参数化。本章主要分成三个部分,第一部分实现一个函数式队列的数据结构,第二部分实现该结构的内部细节,最后一个部分解释其中的关键知识点。接下来的实例中将该函数式队列命名为Queue。一、函数式队列 函数式队列是一种具有以下三种操作方法的数据结构,并且这些操作都必须在常量时间内完成:head,返回该队列中的第一个元素tail,返回除第一个元素之外的所有元素组成的新队列e原创 2016-10-10 00:08:38 · 1169 阅读 · 0 评论 -
Programming In Scala笔记-第十五章、Case Classes和模式匹配
本章主要分析case classes和模式匹配(pattern matching)。一、简单例子 接下来首先以一个包含case classes和模式匹配的例子来展开本章内容。 下面的例子中将模拟实现一个算术运算,这个算术运算可以基于变量和数字进行一些一元或二元的操作。其中有关数据类型,以及一元和二元操作的类型都定义在如下代码中。abstract class Exprcase class V原创 2016-10-08 23:25:36 · 1587 阅读 · 0 评论 -
Programming In Scala笔记-第六章、函数式对象
这一章主要是以定义和完善一个有理数类Rational为线索,分析和介绍有关类定义,构造函数,方法重写,变量定义和私有化,以及对操作符的定义等。一、Rational类定义和构造函数1、定义一个空类class Rational(n: Int, d: Int) 如果一个class没有函数体时,可以不用写花括号,上面的代码是最简形式。圆括号中的n和d是类参数,Scala编译器会根据这两个类参数,为该类生成原创 2016-09-19 21:10:19 · 880 阅读 · 0 评论 -
Programming In Scala笔记-第五章、Scala中的变量类型和操作
Programming In Scala第五章摘要及主要示例原创 2016-09-13 22:35:37 · 3383 阅读 · 0 评论 -
Programming In Scala笔记-第四章、类和对象
Programming In Scala第四章、类和对象原创 2016-09-12 23:23:01 · 706 阅读 · 0 评论 -
Programming In Scala笔记-第二十八章、XML相关
本章介绍Scala对XML的支持,包括的主要内容参考本文一级标题。原创 2017-07-29 14:47:01 · 734 阅读 · 0 评论