Scala小记----初识Scala
一,什么是Scale?
Scala是一门面向对象的,使用JVM运行的函数式编程语言,(函数式编程语言:指的就是那些将方法或者说是函数来作为参数
进行传递的编程语言)。Scala默认引入的包有三个(java.long._ , scala._ , Predef._ ) 注:这三个包下main的内容皆
可以直接使用。
1.1函数式编程的特点?
1.1.1 函数是“一等公民”
(first class)指的是函数与其他数据类型一样,处于一个相互平等的地位,可以赋值给其他变量,亦可以作为参数来传递给另一个
函数,或者说是作为别的函数的返回值。
1.1.2 只用表达式,不用语句
表达式(expression)是一个单纯的运算过程,总是会有返回值;语句(statement)是执行某种操作,没有返回值。函数式编程的
要求就是:值使用表达式,不使用语句。每一步都是作为单纯的运算来做的,而且都有返回值。函数式编程的开发动机就是处理
运算(computation),不考虑系统的读写IO(尽量少)。
1.1.3 没有“副作用”
意味着函数要保持一个独立性,所有的功能就是返回一个新的值,没有其他行为,尤其是不能修改其他的变量的值。
1.1.4 不修改状态
在其他语言中,变量往往保存状态,函数式的编程全局变量不能保存状态,状态一般保存再参数中。
1.1.5 引用透明
指的是函数的运行不依赖外部的变量,只依赖输入参数,任何的时候只要参数相同,引用函数所得到的返回值就总是相同的。
1.2 什么是闭包?
闭包是一个函数,返回值依赖于声明在函数外部的一个或着多个变量。
闭包通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数(可以引用外部的变量)
1.3 Scala代码块?变量?常量?
1.3.1 Scala的代码块?
- 包含在{}中间的代码称之为代码块
- 代码块的最后一行就是这个代码块的返回值(并且无需加return关键字)
1.3.2 Scala的变量和常量?
- Scala的变量和常量的定义需要有一个初始值,如果我们不知道初始值是什么的话,我们可以使用下划线(占位符)来替代
- 只有抽象类可以定位无初始值的变量和常量