Scala
多范式编程语言
运行流程
类Java,先用scalac编译为.class字节码文件,然后再用scala执行出结果,也可用Scala直接运行,不会产生字节码文件,Scala也是依靠jvm来进行编译的
main入口函数
Scala为了简化编程过程,main入口函数和Java的入口函数类似,Scala中是以object伴生对象来代替class,Scala中的所有都是public的,所以不用再次声明public,Scala中用def模拟静态语法,Scala中注重完全面向对象,所以是先声明参数名,再定义参数类型:参数名:参数类型。Java中的定义参数为:参数类型:参数名,返回值类型用unit代替void,用=连接方法体
def Main (参数名:参数类型(可省略)):unit = {方法体}
Scala中的变量
可以用val或var定义,var的值可变,val的值不可变(不可变是因为用final定义的字符串是存放的地址不可变,但是内容可变,用反射可以绕过编译流程,改变字符串内容,大多数情况下Scala中的变量用val定义)
Scala中类型
Scala中的函数类型可以省略,因为Scala是强类型转换,所以定义的类型是不可变的,Scala中不存在基本类型,但是Scala中分为值类型和引用类型,Scala中的值类型和Java中的基本类型用法是相同的且均有8个,在数据进行类型转换的时候都是从小精度的类型开始转换
scala中的for循环
在Scala中的for循环不需要;分割,for(i<-1 to 5)是闭合,to闭合包括5,for(i<- 1 until 5),until前包后不包,实现Java中一次执行的范围在Scala中用Range实现,for(i <- Range(start,end,step)),step代表步长,在Scala中每个函数都是有返回值的,for循环的默认为unit
foreach在Scala中使用yield关键字,将计算得出的结果,放入集合中
循环守卫在Scala中没有continue的关键字,于是使用了叫循环守卫的if判断条件来跳出循环
break:和Java中的break不同,Scala需要导入一个breaks的类,用breaks类来调用break方法,即可实现方法的跳出,但是仅仅使用break跳出的不仅仅是循环体,会直接抛出异常终止编译,为了达到和Java中类似的方法,故用breaks调用breakable方法来捕获异常并且处理,即达到了仅仅跳出循环体的操作
函数式编程
面向对象编程是将问题分解成一个一个小问题,