文档介绍:Scala程序设计
基础篇 学****笔记
 
 
目录
 
前言:
1,环境准备:
2,repl(read evaluation print loop)互动式
3,reference transparency(引用透明 
 
Scala程序设计
基础篇 学****笔记
 
 
目录
 
前言:
1,环境准备:
2,repl(read evaluation print loop)互动式
3,reference transparency(引用透明)与纯函数
4,变量:
变量类型体系:
隐式类型转换
nothing 函数运行异常时返回nothing
函数
前言:
为了学****spark,,这里是课程学****笔记
1,环境准备:
scala :-/
下载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)的返回值可以代替这个函数在其他程序起的作用)
(引用)
4,变量:
val 值不可变
var 值可变
lazy val 第一次引用时计算值
显示指定变量类型
lazy val
变量类型体系:
any是所有类的父类,
null是所有引用类型的最后一个子类,nothing是所有类型的最后一个子类
数值类型:
隐式类型转换
布尔类型
字符和字符串和java相同
unit类型,字面值为(),作为函数的返回值,相当于void,往往表示函数具有副作用(因为没有返回值)
null同java的null
nothing
函数运行异常时返回nothing
字符串插值
函数
代码块(block) 的返回值为最后一个表达式的值
函数定义格式:def  functionName(param1:type,param2:type2):returnType={}
def hello(name: String): String = {
s"hello,${name}"
}
hello("hujiawei")
注意事项:
1函数定义支持柯里化(参数形式不同):
def functionName(param1:type)(param2:type2):returnType={}
def add2(x:Int)(y:Int):Int=x+y
add2(2)(4)
2,不需要return,代码块的返回值就是函数的返回值
3,返回值类型可以省略,只有一个表达式,{}可以省略,同java
def add2(x:Int)(y:Double)=x+y
add2(2)(4)
4,匿名函数
/todo
if表达式
 
 
-全文完-