• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Scala 入门

武飞扬头像
SuperQiu~
帮助1

Scala 入门

1、概述

1.1、为什么学习 Scala

1)Spark—新一代内存级大数据计算框架,是大数据的重要内容。
2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。
3)Spark的兴起,带动Scala语言的发展!

● Scala一个一个地Java
➢Scala基于JVM,和Java完全兼容,同样具有跨平台、可移植性好、方便的垃圾回收等特性
➢Scala 比Java更加面向对象
➢Scala 是一门函数式编程语言

● Scala更适合大数据的处理
➢Scala 对集合类型数据处理有非常好的支持
➢Spark 的底层用Scala编写

1.2、Scala 发展历史

学新通

联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。
马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。所以当接触到JAVA语言后,对JAVA这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza & Scala)。

Pizza和Scala极大地推动了Java编程语言的发展。
● JDK5.0 的泛型、增 强for循 环、自动类型转换等,都是从Pizza引入的新特性。
● JDK8.0 的类型推断、Lambda表达式就是从Scala引入的特性。

JDK5.0和JDK8.0的编辑器就是马丁·奥德斯基写的,因此马丁·奥德斯基一个人的战斗力抵得上一个Java开发团队。

1.3、Scala 和 Java 关系

一般来说,学 Scala 的人,都会 Java,而 Scala 是基于 Java 的,因此我们需要将 Scala和 Java 以及 JVM 之间的关系搞清楚,否则学习 Scala 你会蒙圈。

学新通

1.4 、Scala 语言特点

Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如:Java、c、c 等,动态语言如:js)。
1)Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。(多范式,就是多种编程方法的意思。有面向过程、面向对象、泛型、函数式四种程序设计方法。)
2)Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
3)Scala单作为一门语言来看,非常的简洁高效。
4)Scala在设计时,马丁·奥德斯基是参考了Java的设计思想,可以说Scala是源于Java,同时马丁·奥德斯基也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学,只要在学习Scala的过程中,搞清楚Scala和Java相同点和不同点,就可以快速的掌握Scala这门语言。

2、Scala 环境搭建

1)安装步骤
(1)首先确保 JDK1.8 安装成功
(2)下载对应的 Scala 安装文件 scala-2.12.11.zip
(3)解压 scala-2.12.11.zip,我这里解压到 C:\MyProgramFiles
(4)配置 Scala 的环境变量
学新通
学新通
注意 1:解压路径不能有任何中文路径,最好不要有空格。
注意 2:环境变量要大写 SCALA_HOME
2)测试
需求:计算两数 a 和 b 的和。
步骤
(1)在键盘上同时按 win r 键,并在运行窗口输入 cmd 命令
(2)输入 Scala 并按回车键,启动 Scala 环境。然后定义两个变量,并计算求和。
学新通

3、Scala 插件安装

默认情况下 IDEA 不支持 Scala 的开发,需要安装 Scala 插件。
1)插件离线安装步骤
(1)建议将该插件 scala-intellij-bin-xxxx.x.x.zip 文件(版本要对应自己的idea),放到 Scala 的安装目录C:\MyProgramFiles\scala-2.12.11 下,方便管理。
(2)打开 IDEA,在左上角找到 File->在下拉菜单中点击 Setting… ->点击 Plugins->点击右 下 角 Install plugin from disk… , 找 到 插 件 存 储 路 径C:\MyProgramFiles\scala-2.12.11\scala-intellij-bin-xxxx.x.x.zip,最后点击 ok。
2)插件在线安装(可选)
(1)在搜索插件框里面输入 Scala->点击 Install->点击 ok->点击 apply。
(2)重启 IDEA,再次来到 Scala 插件页面,已经变成 Uninstall。

4、HelloWorld 案例

4.1 创建 IDEA 项目工程

1)打开 IDEA->点击左侧的 Flie->选择 New->选择 Project…
2)创建一个 Maven 工程,并点击 next
3)GroupId 输入 com.xiaoqiu->ArtifactId 输入 scala->点击 next->点击 Finish
注意:工程存储路径一定不要有中文和空格。
4)指定项目工作目录空间
5)默认下,Maven 不支持 Scala 的开发,需要引入 Scala 框架。
在项目上,点击右键-> Add Framework Support… ->选择 Scala->点击 OK
注意:如果是第一次引入框架,Use libary 看不到,需要选择你的 Scala 安装目录,然后工具就会自动识别,就会显示 user libary。
6)创建项目的源文件目录
右键点击 main 目录->New->点击 Diretory -> 写个名字(比如 scala)。
右键点击 scala 目录->Mark Directory as->选择 Sources root,观察文件夹颜色发生变化。
7)在 scala 包下,创建包 com.xiaoqiu.chapter01 包名和 Hello 类名,
右键点击 scala 目录->New->Package->输入 com.xiaoqiu.chapter01->点击 OK。
右键点击 com.xiaoqiu.chapter01->New->Scala Class->Kind 项选择 Object->Name 项输入Hello。
8)编写输出 Hello Scala 案例
在类中中输入 main,然后回车可以快速生成 main 方法;
在 main 方法中输入 println(“hello scala”)
运行后,观察控制台打印输出:
hello scala
hello scala
说明:Java 中部分代码也是可以在 Scala 中运行。

4.2 class 和 object 说明

object Hello {
	def main(args: Array[String]): Unit = {
		println("hello scala")
	}
}

Scala完全面向对象,故Scala去掉了Java中非面向对象的元素,如static关键字,void类型
1)static
Scala无static关键字,由object实现类似静态方法的功能(类名.方法名)。
class关键字和Java中的class关键字作用相同,用来定义一个类;
2)void
对于无返回值的函数,Scala定义其返回值类型为Unit类

4.3、Scala 程序反编译

1)在项目的 target 目录 Hello 文件上点击右键->Show in Explorer->看到 object 底层生成Hello$.class 和 Hello.class 两个文件
2)采用 Java 反编译工具 jd-gui.exe 反编译代码,将 Hello.class 拖到 jd-gui.exe 页面

1)Hello源代码

object Hello {
	def main(args: Array[String]): Unit = {
		println("hello,scala")
	}
}

(1)Object编译后生成Hello$.class和Hello.class两个文件
2)Hello.class类

public final class Hello{
	public static void main(String[] paramArrayOfString){
		Hello$.MODULE$.main(paramArrayOfString);
	}
}

(2)Hello中有个main函数,调用 Hello$ 类的一个静态对象MODULES$
3)Hello$.class类

public final class Hello${
	public static final MODULE$;
	static{
		new ();
	}
	public void main(String[] args){
		Predef.MODULE$.println("hello,scala");
	}
	private Hello$(){
		MODULE$ = this;
	}
}

(3)Hello$.MODULE$. 对象是静态的,通过该对象调用Hello$的main函数

5、关联 Scala 源码

在使用 Scala 过程中,为了搞清楚 Scala 底层的机制,需要查看源码,下面看看如何关
联和查看 Scala 的源码包。
1)查看源码
例如查看 Array 源码。按住 ctrl 键->点击 Array->右上角出现 Attach Soures…
2)关联源码
(1)将我们的源码包 scala-sources-2.12.11.tar.gz 拷贝到 C:\MyProgramFiles\scala-2.12.11\lib 文件夹下,并解压为 scala-sources-2.12.11 文件夹
(2)点击 Attach Sources…->选择 C:\MyProgramFiles\scala-2.12.11\lib\scala-sources-2.12.11,这个文件夹,就可以看到源码了

6、官方编程指南

1)在线查看:https://www.scala-lang.org/
2)离线查看:解压 scala-docs-2.11.8.zip,可以获得 Scala 的 API 操作。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgkhgaf
系列文章
更多 icon
同类精品
更多 icon
继续加载