Scala程序设计—基础篇 学习笔记
课程学习:https://www.imooc.com/learn/613
环境准备:
jdk1.8
scala 2.1:https://www.scala-lang.org/download/
下载zip包,解压缩后配置环境变量
idea安装scala插件:
下载完成后,新建scala项目
file->new project
next->
点击create,选择下载的scala压缩包解压缩位置,finish,
再src下new scala class
右键运行
2,repl(read evaluation print loop)互动式
console方式:
idea方式:
new worksheet
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 第一次引用时计算值
显示指定变量类型
lazy val
变量类型体系:
any是所有类的父类,
null是所有引用类型的最后一个子类,nothing是所有类型的最后一个子类
数值类型:
隐式类型转换
布尔类型
字符和字符串和java相同
unit类型,字面值为(),作为函数的返回值,相当于void,往往表示函数具有副作用(因为没有返回值)
null同java的null
nothing 函数运行异常时返回nothing
字符串插值
代码块(block) 的返回值为最后一个表达式的值
函数定义: