快学Scala-13-集合 主要的集合特质 上图表示了Scala中集合类继承关系中的关键特质 Iterable指能够提供一个遍历集合中每个元素的方法 seq是有先后次序的值的序列,比如数组和列表 IndexedSeq允许我们通过整型下标快速访问任意元素 Set是没有先后顺序的集合 SortedSet中元素以某种顺序被访问 Map是一组一组元素的集合 SortedMap是按照键的某种顺序访问其中的实体 每个Scala集合特质或 2022-02-10 读书笔记 > 快学Scala #scala
快学Scala-12-高阶函数 作为值的函数 Scala中可以在变量中存储函数 123import scala.math._val num = 3.14val fun = ceil _ 将num设置为3.14,将fun设置为一个函数_表明确实指定的是函数,而不是少传了参数。num的类型为Double,而fun的类型是(Double) => Double; 接受并返回Double的函数。可以对函数进行调用或者传递 2022-02-09 读书笔记 > 快学Scala #scala
快学Scala-11-操作符 标识符变量,函数,类等到名称统称为标识符,命名规则推荐和Java保持一致。对于保留关键字,也可以当作标识符来使用,但需要反引号来区分 12val `val` = 4Thread.`yield()` 中置操作符可以将函数标识符放在两个量中间使用,称为中置操作符。 123451 to 101.to(10)1 ->101.->(10) 中置操作符有两个参数,前后都是。 一元操作符只有一个参 2022-01-30 读书笔记 > 快学Scala #scala
快学Scala-10-特质 为什么没有多重继承和Java相同,scala也不允许多重继承,如果允许,则当这些父类有了共同的字段或者方法时,子类对应字段或方法的获取就会存在歧义。 比如助教类继承了老师和学生两个类,并且老师和学生两个类都有自己的id,那么助教的id到底应该取哪个? 还有一种情况,假设老师和学生两个类都继承自人这个类,那就产生了菱形继承问题。 这种情况下如何合并name字段,又如何构造呢? 在Java中,类只能 2022-01-29 读书笔记 > 快学Scala #scala
快学Scala-9-文件和正则表达式 读取行通过scala.io.Source对象的getLines方法可以读取文件中的所有行 1234567891011121314import scala.io.Sourceval source = Source.fromFile("myfile.txt","UTF-8")val lineIterator = source.getLinesfor(l < 2022-01-26 读书笔记 > 快学Scala #scala
快学Scala-8-继承 扩展类和Java相同,用extends来扩展一个类,之后在类定义中给出子类需要,超类不具备的新属性。或者重写超类的方法。 和Java相同,声明为final的类不能被扩展,声明为final的方法不能被重写。 重写方法Scala中重写方法必须使用override修饰符 123class Person{ override def toString = s"${getCla 2022-01-25 读书笔记 > 快学Scala #scala
Git使用指南-基础 本文介绍git基本概念,从典型场景出发介绍如何使用git,帮助快速上手,达到项目版本控制的目的。git是一个版本控制软件,主要目的是帮助用户管理文件版本,包括更新版本,回退版本,辅助多人协作同时修改同一个文件等等。 git常用语软件开发,但绝对不仅可以用在这个方面,任何需要做版本控制的地方都有git的用武之地。 一个场景想想以下下面的场景,就会明白git的作用和必要性。 假设作家要写一本小说,首先 2022-01-25 常用工具 > git #git #最佳实践
快学Scala-7-包和引入 包和Java相同,包存在的目的是管理大型程序中的名称。 例如,Map这个名字可以有多个定义,如果不用包这种结构进行区分,会造成歧义。 不同包下相同的类名表示完全不同的类。 使用类时,可以用完全限定的名称,即包名.类名或者通过引入包来提供更短的别名。 可以用如下方法添加类到包中 12345678package com{ package company{ package d 2022-01-24 读书笔记 > 快学Scala #scala
快学Scala-6-对象 单例对象 Scala没有静态方法或静态字段,可以用object这个语法结构来达到同样的目的,对象定义了某个类的单个实例,和Java中静态满足的特性相同 1234567object Accounts{ private var lastNumber = 0 def newUniqueNumber() = { lastNumber +=1 lastNumber &# 2022-01-23 读书笔记 > 快学Scala #scala
快学Scala-5-类 简单类和无参方法简单类和Java类似 12345class Counter{ private var value = 0 // 必须初始化字段 def increment(){value+=1} // 方法默认公有 def current() = value // 也可以 def current = value 则调用的时候也不加()} scala 中 2022-01-23 读书笔记 > 快学Scala #scala