1. 块语句的特点 ?
块语句,最后一个值或表达式作为块语句的返回值。
2. 函数的几种写法 ?
无参 无返回值
无参 有返回值
有参 无返回值
有参 有返回值
多参 无返回值
3. 函数的参数
可变参数 参数的个数不一定
默认参数 创建函数的时候参数指定默认值, 当调用的时候可以传值,不传值使用的是默认值
带名参数 传递参数的时候可以不按照参数的顺序, 但是需要带参数的名称
4. 函数至简原则
能省就省
1:return可以省略,scala会使用函数体最后一行代码作为返回值
2:返回值如果能推断出来,那么可以省略
3:如果函数只有一行代码,可以省略花括号
4:如果函数无参,则可以省略小括号.若定义函数时省略小括号,则调用该函数时,
也需要省略小括号;若定义函数未省略,则调用时,可省可不省.
5:如果函数明确声明Unit,那么即使函数体中使用return关键字也不起作用
6:Scala如果想要自动推断无返回值,则可以省略等号
7:如果不关心函数名,只关心逻辑处理,那么函数名(def)可以省略
8:如果函数明确声明return关键字,那么函数返回就不能自行推断了,需要声明返回值类型
5. 什么是闭包 ?
就是一个函数和与其相关的引用环境(变量)组合的一个整体(实体);
函数引入外部变量。
6. 什么是柯里化 ?
就是将一个接受多个参数的函数转化成一个接受一个的函数过程,可以简单的理解为一个特殊的参数列表声明方式。
7. 什么是lazy ?
当函数返回值被声明为lazy时,函数的执行被推迟,直到我们首次对此取值,该函数才会执行.这种函数我们称之为惰性函数;
当创建大的变量, 或者执行比较耗时的程序时 (比如读写数据) 适合使用lazy。
8. scala默认导入分别是?
import java.lang._
import scala._
import scala.Predef._
9. scala 的访问修饰符,作用域 ?
默认访问权限为public,但是scala中无public关键字;
private私有权限,只在本类和伴生对象中可用;
private[this] 修饰的只能在本类(限制的类中) private[Stu1] 可以进行访问;
protected受保护权限,scala中受保护权限比java中更严格,修饰的只能在本类, 伴生对象 子类 进行访问,同包无法访问;
protected[this] 修饰的只能在本类(限制的类中)子类 可以进行访问;
prviate[包名]增加包访问权限,包名下的其他类也可以使用。