1. scala语言有什么特点?什么是函数式编程?有什么优点?
- scala同时具有⾯向对象和函数式编程的多种编程范式。
- 函数式编程是一种编程范式,主要思想就是将程序写成一系列函数嵌套的形式,让程序的条例更清晰,灵活性更强。
2. 什么是scala中的闭包?
- 闭包(closure /ˈkloʊʒər/)
- 闭包就是能够读取其他函数内部变量的函数。
-
val a = 3
-
def add(b:Int) = a + b
-
// add就是是一个闭包
3. 什么是scala中的纯函数?有什么好处?
- 是什么
- 纯函数(Pure Function /pjʊr/ /ˈfʌŋkʃn/)所有的输入通过参数传递到函数内部,所有的输出通过返回值传递到函数外部;
- 闭包或者带有打印语句的函数为非纯函数。
- 好处
- 无状态,线程安全,不需要线程同步;
- 纯函数相互调用组装起来的函数,还是纯函数;
- 应用程序或者运行环境(Runtime)可以对纯函数的运算结果进行缓存,运算加快速度。
-
//纯函数 输入都来自参数 输出都通过返回值
-
def f1(a:Int,b:Int) = a + b
-
//非纯函数
-
val x = 1
-
// 输入变量x不是通过参数输入
-
def f2(y:Int) = x + y
-
// 除了返回值还包含打印语句
-
def f3(x:Int) = {
-
println(x)
-
x+1
-
}