1.什么是scala
scala是一门以java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。
2.scala语言的特点
1.scala是一门多范式的编程语言,scala支持面向对象和函数式编程。
2.scala源代码(.scala)会被编译成java字节码(.class),然后运行在JVM之上,并可以调用现有的java类库,实现两种语言的无缝对接。
3.scala但作为一门语言来看,非常的简洁高效。
4.scala在设计时,马丁.奥德斯基是参考了java的设计思想,可以说scala是源于java,同时马丁.奥德斯基也加入了自己的思想,将函数式编程的特点融入到java中。
3.scala强类型和弱类型的区别
3.var和val的区别
var修饰的对象不改变对象的引用(即内存地址),可以改变对象属性的值。
val修饰的对象可以修改对象的引用和修改对象的属性值
4.scala的数据类型
1.整数类型 Byte Short Int Long
2.浮点类型 Float Double
3.字符类型 Char
4.布尔类型 Boolean
5.Unit类型 Null类型 Nothing类型
Unit类型:表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Null类型:null , Null 类型只有一个实例值null
Nothing类型:Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。当一个函数,我们确定没有正常的返回值,可以用Nothing来指定返回类型,这样有一个好处,就是我们可以把返回的值(异常)赋给其它的函数或者变量(兼容性)
scala中一切数据都是对象,都是Any的子类,分为两大类:数值类型AnyVal和引用类型AnyRef
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7bc1d37ba8be8f26bdf78ae4d5c3e6a6.png)
5.函数和方法的区别
1.scala语言的语法非常灵活,可以在任何的语法结构中声明任何的语法
2.类中的函数成为方法,生命都是用def开头的
3.函数的头等公民,可以当作参数来传递
4.函数没有重载和重写的概念,方法可以进行重载和重写
5.scala中函数可以嵌套定义
6.scala的break
scala语言中默认是没有break语句
scala的break不能直接被引用,需要手动导入
7.函数的几种写法
1.无参,无返回值
2.无参,有返回值
3.有参,无返回值
4.有参,有返回值
5.多参,无返回值
8.函数参数的类型
1.可变参数
2.参数默认值
3.带名参数
4.如果参数列表中存