Scala程序设计—基础篇 学习笔记

课程学习:https://www.imooc.com/learn/613

环境准备:

jdk1.8

scala 2.1:https://www.scala-lang.org/download/

下载zip包,解压缩后配置环境变量

idea安装scala插件:

Scala程序设计—基础篇 学习笔记

下载完成后,新建scala项目

file->new project

Scala程序设计—基础篇 学习笔记

 

next->Scala程序设计—基础篇 学习笔记

点击create,选择下载的scala压缩包解压缩位置,finish,

再src下new scala class

Scala程序设计—基础篇 学习笔记

右键运行

2,repl(read evaluation print loop)互动式

console方式:

Scala程序设计—基础篇 学习笔记

idea方式:

new worksheet

 

Scala程序设计—基础篇 学习笔记

Scala程序设计—基础篇 学习笔记

3,reference transparency(引用透明)与纯函数

引用透明:对于程序p,如果它包含的表达式e满足引用透明,所有e都可以替换为它的运算结果而不会改变程序p的含义(要求函数不论进行任何操作都可以用它的返回值来代替)。

引用透明与纯函数的关联:假如存在一个函数f,若表达式f(x)对所有引用透明的表达式x也是引用透明,那么这个f是一个纯函数(也就是说,传入引用透明的x表达式给f,函数f(x)的返回值可以代替这个函数在其他程序起的作用)

(引用https://www.cnblogs.com/zhixiangshu/p/10054065.html)

4,变量:

val 值不可变

var 值可变

lazy val 第一次引用时计算值

Scala程序设计—基础篇 学习笔记

显示指定变量类型

Scala程序设计—基础篇 学习笔记

lazy val

Scala程序设计—基础篇 学习笔记

变量类型体系:

Scala程序设计—基础篇 学习笔记

any是所有类的父类,

null是所有引用类型的最后一个子类,nothing是所有类型的最后一个子类

数值类型:

Scala程序设计—基础篇 学习笔记

隐式类型转换

Scala程序设计—基础篇 学习笔记

布尔类型

Scala程序设计—基础篇 学习笔记

字符和字符串和java相同

Scala程序设计—基础篇 学习笔记

unit类型,字面值为(),作为函数的返回值,相当于void,往往表示函数具有副作用(因为没有返回值)

Scala程序设计—基础篇 学习笔记

null同java的null

nothing 函数运行异常时返回nothing

Scala程序设计—基础篇 学习笔记

字符串插值

Scala程序设计—基础篇 学习笔记

代码块(block) 的返回值为最后一个表达式的值

函数定义:

Scala程序设计—基础篇 学习笔记