目录
Scala的安装
window安装Scala:
只需运行.exe文件,点击下一步即可,在cmd中验证
window安装idea:
需注意:
指定安装目录
配置环境:
Project SDK:是指定jdk的安装目录,就会出现图中所示
Scala SDK:需要安装Scala,安装后系统会自动识别,如图所示:
然后点击OK,就行。
修改界面字体
File -->Settings -->Editor --> General -->勾选Change font size (Zoom) with Ctrl + Mouse Wheel
使用IDEA创建项目和项目打包
新建项目
File --> New Project -->选择所建项目类型,指定项目名称
File --> Open Recent --> 切换项目。
File --> New -->Package -->创建包
右击创建好的包 -->创建Scala.class
右击包 --> New --> Scala WorkSheet -->
打成jar包
File --> Project Structure --> Artifacts (打成jar包) Libraries(添加jar包)--> 点击+按钮--> JAR (把依赖也加上)-->
然后在点击Build --> Build Atifacts -->build
然后加此jar包拷贝到Window的一个目录中,打开cmd运行此jar包
设置cmd属性
点击窗口左上方管理员 -->设置相应属性
执行Scala命令行工具
REPL支持tab补全
输入命令s.con<tab>:表示的是在arr.后输入tab符。REPL将列出一组可能会被调用的方法名。
而在输入arr.toB时按Tab键,则会自动补全为arr.toBuffer
定义一个apply方法,传入两个参数x , xs, xs: Int*是一个可变长参数,返回类型是Array[Int]。{ }里面是方法体,方法体里创建一个Array的数组对象,长度是可变长参数xs + x,将参数x赋值给数组0的位置,然后迭代可变长参数依次从数组1的位置开始赋值。
Actor
创建Meven项目:
File -> new -> Project ->Meven ->
自动生成 Project name 、Project Location信息--> finish
然后在pom.xml文件中配置Meven的依赖信息
这些参数的配置可以在
Edit Configrations中传递,如果想要启动多个worker,只需要修改端口号,然后Apply,点击Worker旁边的执行按钮就可以启动另外一个worker
装饰模式和继承的区别
为什么要使用装饰模式?
在项目开发的过程中,当客户提出了一个新的需求(这个新的需求需要我们对我们的某个类进行改动),为了这个新的需求,当然我们会想到去扩展某个类,扩展类的功能我们可以使用继承和装饰来达到我们的目的。
区别
继承:被增强的对象固定,增强的内容也是固定的
装饰者模式:被增强的对象可以切换,装饰是通过构造函数参数传递进行增强,它避免了继承体系的臃肿。
scala中map与flatMap的区别
map:将一个函数传入map中,然后利用传入的这个函数(List(1,2,3)),将集合中的每个元素处理,并将处理后的结果返回。
map:
def map1(): Unit ={ List(boy, boy, hi) |
flatMap:
def flatMap1(): Unit ={ List(b, o, y, b, o, y, h, i) |
既然是flatMap,那除了map以外必然还有flat的操作,所以需要返回值是List才能执行flat这一步。