文章目录
第1章 Scala入门
1.1 概述
1.1.1 什么是Scala
从英文的角度来讲,Scala并不是一个单词,而是Scalable Language两个单词的缩写,表示可伸缩语言的意思。从计算机的角度来讲,Scala是一门完整的软件编程语言,那么连在一起就表示Scala是一门可伸缩的软件编程语言。之所以说它是可伸缩,是因为这门语言体现了面向对象,函数式编程等多种不同的语言范式,且融合了不同语言新的特性。
Scala编程语言是由联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计并开发的。由于Martin Odersky之前的工作是开发通用Java和Javac(Sun公司的Java编译器),所以基于Java平台的Scala语言于2003年底/2004年初发布。
截至到2022年6月21日,Scala最新版本为3.1.3,支持JVM和JavaScript
Scala官网:https://www.scala-lang.org/
1.2 快速上手
1.2.1 Scala环境安装
1)安装JDK 1.8
1.安装完JDK后配置环境变量 计算机→属性→高级系统设置→高级→环境变量
2.系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录(例如: C:\Program Files\Java\jdk1.8.0_162)
3.5
3.系统变量→寻找 Path 变量→编辑
在变量值最后输入 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
5.系统变量→新建 CLASSPATH 变量
变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)
系统变量配置完毕
6.Win+R执行cmd 进入dos命令
执行java出现
执行javac出现
查看JDK版本号执行 java –version
成功安装完环境
2)安装Scala2.12
解压文件:scala-2.12.11.zip,解压目录要求无中文无空格
配置环境变量
3)环境测试
如果出现如下窗口内容,表示环境安装成功
1.2.2 Scala插件安装
默认情况下IDEA不支持Scala的开发,需要安装Scala插件。
如果下载慢的,请访问网址:https://plugins.jetbrains.com/plugin/1347-scala/versions
1.2.3 Hello Scala案例
1)创建Maven项目
以下为IDEA2020.3.4版本的创建maven工程截图:
以下为IDEA2018.2.4版本的创建maven工程截图:
安装Scala插件
Project创建完成并且Scala插件安装好之后,重启IDEA并创建Module
Scala上面点击右键,找到这个
创建Package
然后创建一个Scala类
程序结果如下:
修改文件名字
Scala01_HelloWorld代码
package com.dt.bigdata.scala.chapter01
object Scala01_HelloWorld {
def main(args: Array[String]): Unit = {
System.out.println("Hello Scala World")
}
}
Scala02_HelloWorld代码
package com.dt.bigdata.scala.chapter01
/*
scala语言是基于java语言开发的
package : java中的包
object : 声明一个对象,在编译时,会编译为两个类文件
这个声明的对象的类型为:当前类型+$
等同于Java中new 一个新类,具体如下:
User user = new User();
user.setName
Scala02_HelloWorld = new Scala02_HelloWorld$()
Scala02_HelloWorld : 是对象名称
def : 是声明方法的关键字
main : 是scala程序的入口方法名
() : 是方法参数列表
args: Array[String] : 是参数
java => String[] args => java是一个强类型的语言
scala => args: Array[String]
args : 是参数名
Array[String] : 是参数类型
: => 是分隔符
Array[String] : Array是一个数组类型,String是元素类型
scala语言是一个完全面向对象的语言,所以万物皆对象
数组也是对象,也有自己的类型:Array,这里的中括号表示泛型
将数组打印为[]的话,则显示String[] => [Ljava.lang.String@343434
: Unit => scala => 名称:类型
=> 参数名:参数类型
=> 变量名:变量类型
=> 方法名:方法的返回值类型
Unit表示返回值类型,Unit类型是scala中新的类型,为了代替Java中的void关键字,表示没有返回值
= : 是赋值
User user = new User();
user.xxx
user.yyy
public void test() = {
sout("123")
}
test()
System.out.println("Hello Scala World") : java代码
scala语言是基于java语言开发的,所以大部分的java代码可以直接在scala中使用
代码可以不需要分号结尾: scala推荐一行代码中只有一个逻辑,那么分号可以省略
*/
object Scala02_HelloWorld {
def main(args: Array[String]): Unit = {
// 方法体
System.out.println("Hello Scala World")
println("Hello Scala")
}
}