Scala学习笔记

来源:互联网 发布:练腹肌软件 编辑:程序博客网 时间:2024/05/17 08:42

这套笔记很久之前就写好了

主要内容就是看【快学Scala】那本书,的读书笔记

发到博客上来,留个纪念吧。

 

快学Scala这本书,我觉得是目前中国讲Scala,讲得比较全且比较好的了。

但是有一点不好,就是讲得比较浅,浅到甚至就一笔带过,里面的很多内容我都是反复看了好几遍才明白的。

 

而且不得不说,每一章后面的习题都难到爆炸。

我差不多都是看完书小半年之后才会做那些题目。

 

 

 

 

 

第1章 基础a1 1

1.1 scala解释器1

scala会被编译成字节码文件,最后这个文件交给java虚拟机执行

这个套路我们叫REPL A read–eval–print loop1

 

 

1.2 声明值和变量 3

声明方式

val/var: 数据类型 = 数据的值

 

val 不可变变量

var 可变变量

 

 

1.3 常用类型 4

7种数值类型

Byte,Char,Short(比Int小一半),Int,Long,Float,Double

Boolean

这些类型都是类,scala并不刻意区分基本类型和引用类型

scala不需要包装类型

在基本类型和包装类型之间的转换是scala编译器的工作

在scala中,我们用方法而不是强制类型转换,来做数值类型之间的转换

 

 

1.4 算术和操作符重载 5

1 + 2 隐式

1.+(2) 显式

 

scala没有提供自增,自减,需要使用 i += 1 i -= 1来实现

 

对于那些BigInt BigDecimal类型,可以直接使用 + - * / 操作符

 

 

1.5 调用函数和方法 7

`只要引了对应包,就可以直接使用该包内的函数

 

 

1.6 apply方法8

在scala中我们通常会使用类似函数调用的语法

如果s是个字符串

那s(i)就是改字符串的第i个字符

这种用法当作是()操作符重载形式,背后的实现原理是一个apply方法

 

 

1.7 scaladoc9

http://www.scala-lang.org/api/current/

类名旁边

c = 类

o = 伴生对象

 

数值类 => RichInt,RichDouble

字符类 => SpringOps

数学函数 => scala.math

 

 

第一章的习题看似都很简单,简单的有经验的都不想做。想着第二章肯定也不过如此吧。

呵呵,然后我就被骗了。

 

4.字符串可以做一元计算"a" * 3 = aaa

5.10 max 2 => 10.max(2) //max是比较Int的一个方法,返回最大的那个Int

6.BigInt(2).pow(1024) //2的1024次方

7.scala.math.BigInt._ scala.util.Random

8.toString(36)

9.字符头字符head 字符尾字符takeRight(1) 或者reverse(1)

10.substring VS slice